Gast
#1021006
Nabend.
Versuche den TimerA0 zu initialisieren samt seines Interrupts, doch
irgendwie sehe ich nicht das erwartete Resultat..
Vielleicht fällt einem etwas auf..
Vielleicht habe ich etwas vergessen oder falsch gemacht.
Hier ein Ausschnitt:
#include "sfr245.h"
#pragma INTERRUPT /B TimerA0int
void initPort( void);
void initTimerA0( void);
void setTimerA0int( void);
void startTimerA0( void);
void blink( void);
void TimerA0int( void);
int x = 0;
void main(void)
{
initPort();
initTimerA0();
setTimerA0int();
startTimerA0();
while(1){ asm("NOP"); }
}
void initPort( void)
{
pd7 = 0xff; // outputs
p7 = 0xff; // aus
}
void initTimerA0( void)
{
ta0mr = 0x80;
ta0 = 0xFFFF;
}
void setTimerA0int( void)
{
asm("fclr i");
ta0ic = 0x07;
ir_ta0ic = 0; // Interrupt request flag clear.
asm("fset i");
}
void startTimerA0( void)
{
// tabsr |= 0x01;
ta0s = 1; // start timer
}
void TimerA0int( void)
{
...
}
}
Zusätzlich steht in der sect30.inc:
.
...
.glb _TimerA0int
.lword _TimerA0int ; vector 21 (for user) timer A0
...
.