Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.05.2010, 19:45
|
|
Временная регистрация
Регистрация: 04.08.2006
Сообщений: 67
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 11 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
Сообщение от s64
|
нельзя, С не умеет понимать переменные в двоичном виде.
|
![Голова кругом](images/smilies/icon_rolleyes.gif) 0b11000000
|
|
|
|
04.05.2010, 21:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
Цитата:
|
С не умеет понимать переменные в двоичном виде
|
Как не умеет понимать
А как такой масив
unsignet char symbol []={
0b00000011
0b10011111
...
...
...
}
Примерно так описываются цифры выводимые на индикатор, сам еще не пробовал, сегодня завтра начну.
Кстати никто не растолкует алгоритм измерения амплитудного значения переменного напряжения 50Гц
|
|
|
|
04.05.2010, 22:54
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
пардон, пользуюсь IAR, он не умеет...
|
|
|
|
04.05.2010, 23:12
|
|
Частый гость
Регистрация: 26.12.2008
Сообщений: 24
Сказал спасибо: 1
Сказали Спасибо 36 раз(а) в 7 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
https://kazus.ru/forums/showthread.php?t=16436
мой вариант, если есть вопросы - спрашивайте, отвечу
|
|
|
Сказали "Спасибо" VladimirMal
|
|
|
05.05.2010, 01:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
VladimirMal
У Вас переменная digit представляет масив из двенадцати знков описаных в двоичной форме, что в принципе и понятно. Не знаю почему люди пишут что в шестнадцатеричной системе надо, это просто не удобно.
Если можно объясните простыми словами что такое "void", а то блин два учебника и википедию мучаю а понять смысла не могу.
|
|
|
|
05.05.2010, 09:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
Сообщение от 7Fantomas7
|
Если можно объясните простыми словами что такое "void", а то блин два учебника и википедию мучаю а понять смысла не могу.
|
Если стоит перед функцией void это обозначает что функция после окончания работы не возвращает никаких переменных в главную программу,которая вызвала ее.
Полгода почти не занимаюсь контроллерами(все это время изучал люнекс),но теперь вспоминаю все и хочу тож сделать вольтметр на пике,вот и возник вопрос: Как я помню диапазон у АЦП пиков от 2В до 5В если относительно 5В идет преобразование,вот и подскажите как можно измерить диапазон от 0 до 30В даж применяя делитель напряжения,может и глупый вопрос.Если есть схема разберу ее и вспомню.
__________________
Глаза боятся,а руки делают.
Последний раз редактировалось CERGEI1982; 05.05.2010 в 09:42.
|
|
|
Сказали "Спасибо" CERGEI1982
|
|
|
05.05.2010, 14:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
CERGEI1982
Цитата:
|
Как я помню диапазон у АЦП пиков от 2В до 5В если относительно 5В идет преобразование
|
Я по правде сказать в програмировании контролеров дубалом буреломнымный. Мы в паре работаем, я занимаюсь электронной частью и платами, изучаю исключительно AVR в порядке самообразования чтоб не ржавели мозги и себе чего собрать мог. Но на мой взгляд измерение идет относительно опорного напряжения (для AVR это AREF, внутренний 2,56V для ATMega8.), наружный опорный источник можно выставить сколько угодно но не более чем указано в даташите. А аотносительно опоры мерять от 0 до величины опорного плюс еще сколькото. Исходя из этого и делитель считается например входное напряжение 400V нам нужно 2,56max, коэфициент деления счтаем 400/2,56=156,25, ну а дальше ток делителя.
Цитата:
|
Если стоит перед функцией void это обозначает
|
а если void function(void)
Последний раз редактировалось 7Fantomas7; 05.05.2010 в 22:16.
|
|
|
|
06.05.2010, 08:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
Сообщение от 7Fantomas7
|
Исходя из этого и делитель считается например входное напряжение 400V нам нужно 2,56max, коэфициент деления счтаем 400/2,56=156,25, ну а дальше ток делителя.
|
Ну а если надо измерять контроллером от 0 до 400 В ? делать набор делителей и какой нибудь переключатель для выбора нужного делителя,чтоб не сжечь порт и измерить.Например измеряем с самого большого диапазона и переключаемся пока напряжение не будет превышать напряжение относительно которого измеряем и этот делитель будет оптимальным выбором для измерения нужного напряжения.
Сообщение от 7Fantomas7
|
а если void function(void)
|
Все также,тока функция не имеет входящих аргументов и исходящих(как бы она не зависит ни от чего,тока может от статических переменых),обычно такую делают функцию главной,если не нужно возращать код ошибки.
Советую найти книжку Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. Так хоть и поверхностно описано,но для начала пойдет.
__________________
Глаза боятся,а руки делают.
|
|
|
|
06.05.2010, 13:32
|
|
Вид на жительство
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
![Мистер Грин](images/smilies/icon_smilegreen.gif) Я все уже перевел заранее для работы с 7ми сегментником
Код:
|
Характеристика выводов МК при выдаче на 7сегментник:
7Seg b f a e d . c g
PORTx 7 6 5 4 3 2 1 0
Симв BIN HEX
0 11111010 0xFA
1 10000010 0x82
2 10111001 0xB9
3 10101011 0xAB
4 11000011 0xC3
5 01101011 0x6B
6 01111011 0x7B
7 10100010 0xA2
8 11111011 0xFB
9 11101011 0xEB
A 11110011 0xF3
b 01011011 0x5B
C 01111000 0x78
d 10011011 0x9B
E 01111001 0x79
F 01110001 0x71
G 01111010 0x7A
h 01010011 0x53
I 01010000 0x50
L 01011000 0x58
n 00010011 0x13
q 11100011 0xE3
r 00010001 0x11
o 00011011 0x1B
P 11110001 0xF1
t 01011011 0x5B
U 11011010 0xDA
У 11001011 0xCB
- 00000001 0x01
с 00011001 0x19
u 00011010 0x1A
¬ 10100000 0xA0
_ 00001000 0x08
] 10101010 0xAA
¯ 00100000 0x20
º 11100001 0xE1
ǁ 11010010 0xD2
ʴ 00001010 0x0A
ʳ 01100000 0x60 |
|
|
|
|
06.05.2010, 14:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: AT Mega8 вольтметр прошу помочь
Сообщение от MasterMushi
|
Я все уже перевел заранее для работы с 7ми сегментником
|
Не любите Вы себя...
Код:
|
// сегменты
#define SEG_A 0
#define SEG_B 1
....
// символы
#define SYM_0 ((1‹‹SEG_A)|(1‹‹SEG_B)|(1‹‹SEG_C)|(1‹‹SEG_D)|(1‹‹SEG_E)|(1‹‹SEG_F)|(0‹‹SEG_G)|(0‹‹SEG_H))
// и т.д.
// а дальше массив
uint8_t Symvols[] = {SYM_0,SYM_1,SYM_2...};
// Если понадобится перемешать сегменты, то достаточно исправить дефайны сегментов.
//Если общий анод:
uint8_t Symvols[] = {~SYM_0,~SYM_1,~SYM_2...}; |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
АЦП в mega8
|
FlashAck |
Микроконтроллеры, АЦП, память и т.д |
29 |
29.01.2010 17:50 |
Часовой пояс GMT +4, время: 03:37.
|
|