CCS C Compiler und PIC12F675 und Quartz und Timer
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 ?!?!