Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Проблема со старшими регистрами

Пт июн 29, 2012 00:44:49

Програмирую а КодеВижн 205 спидометр на мото,а моделирую в протеусе78,сделал вот так:
1.настроил 2байтный счетчик на 10кГц счета
2.поставил прерывание по захвату
В протеусе поставил генератор частот на 1 Гц на ножку захвата таймера, и по идее регистры старшый и младшый должны содержать значение равно в 10000.Но вот только младшый регистр работает,тоисть его значение меняются, а старшый почему то всегда в ноле .И это не только старший регистр захвата ,а и регистр самого счетчика почемуто всегда в ноле (
Вот почему этот код на экране выводит "0",вместо значения ? Где ошибка или это протеус неработает как надо?
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
sprintf(buf,"%i",ICR1H);
lcd_gotoxy(0,0);
lcd_puts(buf);
TCNT1H=0x00;
TCNT1L=0x00;
}

Re: Проблема со старшими регистрами

Пт июн 29, 2012 23:28:46

Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.

Re: Проблема со старшими регистрами

Сб июн 30, 2012 15:22:46

Ser60 писал(а):Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.

Огромное спасибо,помогло) там ещё такой прикол есть что если обнулять значения регистров счетчиков, то наоборот,сначала старш потом младш.
Тема закрыта