Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
31.10.2008, 20:21
|
|
Частый гость
Регистрация: 02.07.2006
Сообщений: 33
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Не работает АЦП
Хотел поэкспериментировать с ADC ATMEGA16 в Протеусе.
На PA0/ADC0 поступает напр.от переменника от 0 до 5 в.,на PB0 соединил светодиод через резистор и на минус.Светоиод не горит,что-то в программе неправильно или что еще -не могу понять.Подскажите
Код:
|
interrupt [ADC_INT] void adc_isr(void){
unsigned char adc_data;
adc_data=ADCH;
if(adc_data›50)PORTB.0=1;
ADCSRA|=0x40;
}
void main(void){
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x01;
// ADC initialization
// ADC Clock frequency: 15,625 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x8E;
#asm("sei")
while (1){
} |
|
|
|
|
31.10.2008, 21:02
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
RTFM
Сначала читаем младший байт, а потом старший...
И смысл использовать прерывание на очень короткий процесс ???
Код:
|
If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH, to ensure that the content of the data registers belongs to the same conversion. Once ADCL is read, ADC access to data registers is blocked. This means that if ADCL has been read, and a conversion completes before ADCH is read, neither register is updated and the result from the conversion is lost. When ADCH is read, ADC access to the ADCH and ADCL registers is reenabled |
__________________
разум когда-нибудь победит... (с)
|
|
|
|
31.10.2008, 21:29
|
|
Частый гость
Регистрация: 02.07.2006
Сообщений: 33
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Это я знал,но здесь wizard-ом поставил use 8 bits,поэтому ADCH,ставил и ADCW,также,можно и без прерывания,мне главное разобраться с АЦП,этот код для примера,а в моем устройстве не светодиод будет ,а 7-сегм. индикатор,если светодиод зажгу,то с индикатором разберусь.Если бы АЦП работал,то светодиод светился бы при каком нибудь напряжении.Что здесь неправильно ?Почитал книжки,пробовал примеры,но ничего не получается,может кто нибудь напишет простой код на CVAVR и попробует в протеусе,а то я зашел в тупик.
|
|
|
|
31.10.2008, 21:46
|
|
Частый гость
Регистрация: 03.09.2008
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
попробуй реально на физическом уровне все это повторить,потому как протеус это тебе тоже не идеальная программа!!
|
|
|
|
31.10.2008, 21:54
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Нате
Прикрепленный файл: 5435231.rar
__________________
разум когда-нибудь победит... (с)
|
|
|
|
31.10.2008, 22:27
|
|
Частый гость
Регистрация: 02.07.2006
Сообщений: 33
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо за пример,но что то у меня не то выходит,при нажатии play снизу счетчик не тикает,при 32ком светодиод горит после двух нажатий на play,и тухнет при 31 ком ,также,почему счетчик не тикает,не пойму.
|
|
|
|
31.10.2008, 22:34
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Весь проект - и прот, и св
__________________
разум когда-нибудь победит... (с)
|
|
|
|
31.10.2008, 22:52
|
|
Частый гость
Регистрация: 02.07.2006
Сообщений: 33
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Да,я про ваш проект говорю,ну ладно,пример есть ,буду разбираться.
|
|
|
|
31.10.2008, 22:57
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
О моем ? Я его за 2 минуты накидал. Уберите точки останова - после остановки - щелкните на исходнике правой кнопкой мыши и поставьте галочку disable all breakpoints
__________________
разум когда-нибудь победит... (с)
|
|
|
|
01.11.2008, 06:58
|
|
Частый гость
Регистрация: 02.07.2006
Сообщений: 33
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вместо coff поставил HEX и все работает.Еше раз спасибо !
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:44.
|
|