Страница 1 из 1

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

Добавлено: Пт июн 29, 2012 00:44:49
mich91
Програмирую а КодеВижн 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
Ser60
Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.

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

Добавлено: Сб июн 30, 2012 15:22:46
mich91
Ser60 писал(а):Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.
Огромное спасибо,помогло) там ещё такой прикол есть что если обнулять значения регистров счетчиков, то наоборот,сначала старш потом младш.