Програмирую а КодеВижн 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: Проблема со старшими регистрами
Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.
For a 16-bit read, the Low byte must be read before the High byte.
Re: Проблема со старшими регистрами
Огромное спасибо,помогло) там ещё такой прикол есть что если обнулять значения регистров счетчиков, то наоборот,сначала старш потом младш.Ser60 писал(а):Вот выдержка из даташита по поводу чтения 16-битных регистров таймера:
For a 16-bit read, the Low byte must be read before the High byte.
