ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
19155
yosephcz (28.12.2004 18:36, просмотров: 442)
Мужики хелп, LPC2106 есть таймер0 и его два MATCH MODULES 0 и 1, T0MCR=0x09, T0CCR=0x00, VIC interrupt OK enabled: ******************************************** unsigned int tmp0_, tmp1_, tmpT0TC_; void TIMER0_IRQ() __attribute__ ((interrupt ("IRQ"))); void TIMER0_IRQ() { tmpT0TC_ = T0TC; //save register value for debug watch if(T0IR & 0x01) { //MATCH 0 T0IR = 0x00000001; //clear interrupt flag T0MR0 += 4001; //add value count0_++; //counter IO0PIN ^= 0x00000010; //pin complement } if(T0IR & 0x02) { //MATCH 1 T0IR = 0x00000002; //clear interrupt flag T0MR1 += 5000; //add value count1_++; IO0PIN ^= 0x00000004; //pin complement } VICVectAddr = 0x00000000; //Dummy write to signal end of interrupt } ******************************************** Программа работает хорошо, но когда count1_ == 0x0B84, программа работает плохо = count0_ есть инкремент но count1_ инкремента нет, нужно таймер T0TC0 оверфлов и матч модул1 работает опять только момент, но матч модул0 работает всё время хорошо!