BASCOM kann das von Hause aus. Lies mal:
Code:
CONFIG CLOCK = soft
falls Du zusätzlich weitere Dinge in der 1sec-ISR behandeln willst oder Bascom beim MEGA128 die Register falsch setzt (kann das nicht testen) hier ein Beispiel für den MEGA169, wie Du die Register und ISR selber behandelst:
Code:
'Set Timer Register Mega169
Assr = &B1000 'Async with ext. Crystal Oscillator
Tccr2a = &B0101 'prescaler 128: 32.768Hz/(128*256) = 1sec
Tifr2 = &B0011 'Clear Timer/Counter2 - Interrupt Flag TIFR2
Timsk2.toie2 = 1 'Enable Timer2 - Timer/Counter2 Interrupt Task Register TIMSK2
On Ovf2 Isr_softclock Nosave 'OVF2 =$00a ;Overflow2 Interrupt
'...
'*********ISR Timer2 - Async ***************************************
'---------------------------------------------------------------
'Interrupt: Isr_softclock
'Call from: Interrupt Vector Timer2
'Purpose: increment RTC: clock and date
' external 32kHz Oscillator (Async Modus)
'Result: _sec, _min, _hour, _day, _month, _year
'---------------------------------------------------------------
$external _soft_clock
Const _sectic = 0 'Compilerstatement for CONFIG CLOCK = USER , GOSUB <> SECTIC
Isr_softclock:
$asm
'internal Bascom ISR-Routine: Softclock
JMP _SOFT_CLOCK 'original RETI
$end Asm
Return
Lesezeichen