hallo zusammen,
ich habe hier einen PIC12F675 mit einem 4MHz Quartz, diesen programmiere ich mit dem ccs c compiler und anschließend wird der pic mit dem mplab 7.5 + icd2 gebrannt. allerdings macht mir gerade der timer0 ein wenig kopfschmerzen, mein hardware/software timer kann ich nur auf ganze sekunden werte einstellen, also: 1, 2, 3, 4, 5, 6, ...
Code:setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); enable_interrupts(INT_TIMER0); enable_interrupts(GLOBAL); unsigned int8 TM_VALUE_1SEC = 250; unsigned int8 TM_VALUE_XSEC = 0; unsigned int8 TM_COUNT_1SEC = 0; unsigned int8 TM_COUNT_XSEC = 0; unsigned int1 TM_FLAG_1SEC = FALSE; unsigned int1 TM_FLAG_XSEC = FALSE; unsigned int1 TM_FLAG_MAIN = FALSE; #int_TIMER0 TIMER0_isr( /* 4ms */ ) { TM_FLAG_1SEC = FALSE; TM_FLAG_XSEC = FALSE; if( ++TM_COUNT_1SEC >= TM_VALUE_1SEC) { TM_COUNT_1SEC = 0; TM_FLAG_1SEC = TRUE; } if( TM_FLAG_1SEC == TRUE) { if( ++TM_COUNT_XSEC >= TM_VALUE_XSEC) { TM_COUNT_XSEC = 0; TM_FLAG_XSEC = TRUE; } } if( TM_FLAG_XSEC == TRUE) { TM_FLAG_MAIN = TRUE; } } void main() { if( TM_FLAG_MAIN == TRUE) { TM_FLAG_MAIN = FALSE; toggle_einen_ausgang(); } else { toggle_einen_anderen_ausganag(); } }
aber der timer läuft "falsch", wenn ich die zeit messe, bekomme ich immer werte hinter einem komma heraus ?!?!







Zitieren

Lesezeichen