Ich habe gerade mal die einfache variante Versucht und ein Port Pin getoggelt. Geht leider auch nicht.
Meine Callback funktion schaut jetzt so aus:
Procedure RTCtickSecond; {CallBack procedure}
begin
toggle(PINB.0);
end;
Anscheinend springt er doch nicht in die Callback Funktion. Im Handbuch steht auch , daß man
Define RTCsource = SysTick[, adj]; {optional}
verwenden könnte. Allerdings bekomme ich beim Einsetzen des adj eine Fehlermeldung
RTCsource = SysTick, adj;
liefert den Fehler "identifier or factor expected".
In einem anderen Define, nämlich bei SysTick = 10, adj; funktioniert das adj aber.
Hab ich vielleicht gänzlich irgendwo nen Denkfehler?
program XMegaDrive;
{$WG-} {global Warnings on}
Device = xmega128A1, VCC=3.3;
{$BOOTRST $10000} {Reset Jump to $10000}
Import SysTick, RTClock, SerportC0, SerportC1, SerportD0,ADC_A, DAC_A;
From System Import LongWord, LongInt, fix64, Processes, Tasks, Pipes, PIDs;
From RTclock Import RTCtimer;
From SysTick import SystemTime32;
Define
OSCtype = int32MHz, PLLmul=4, prescB=1, prescC=1;
SysTick = 10, adj; // msec, correct the RTC32K timer for exact mSec timing
StackSize = $0100, iData;
FrameSize = $0100, iData;
Scheduler = iData;
TaskStack = $0040, iData;
TaskFrame = $0020;
RTclock = iData, DateTime; {Time or DateTime}
RTCsource = SysTick, adj;
//Serout für das Display
SerPortC0 = 115200, Stop1; {115200 Baud, 1Stopbit}
TxBufferC0 = 8,iData; {8 Byte Buffer und Int}
RxBufferC0 = 8, iData; {8 Byte Buffer und Int}
//Serport für den XPORT
SerPortC1 = 9600; {9600 Baud}
TxBufferC1 = 8,iData; {8 Byte Buffer und Int}
RxBufferC1 = 64, iData; {8 Byte Buffer und Int}
//Serport für den VDIP2
SerPortD0 = 9600, Stop1; {9600 Baud, 1Stopbit}
TxBufferD0 = 64,iData; {8 Byte Buffer und Int}
RxBufferD0 = 8, iData; {8 Byte Buffer und Int}
// ADC für die Betriebsspannungsüberwachung
ADCrefA = REF100; {intern 1.0V reference, input pins at PortA, 4 channels}
ADCprescA = 64; {prescaler 64}
ADCchansA = [0];
//DAC zum Einstelen des Motorstromes
DAC_A = chan01, REFaVCC;
Meine Callback funktion schaut jetzt so aus:
Procedure RTCtickSecond; {CallBack procedure}
begin
toggle(PINB.0);
end;
Anscheinend springt er doch nicht in die Callback Funktion. Im Handbuch steht auch , daß man
Define RTCsource = SysTick[, adj]; {optional}
verwenden könnte. Allerdings bekomme ich beim Einsetzen des adj eine Fehlermeldung
RTCsource = SysTick, adj;
liefert den Fehler "identifier or factor expected".
In einem anderen Define, nämlich bei SysTick = 10, adj; funktioniert das adj aber.
Hab ich vielleicht gänzlich irgendwo nen Denkfehler?
Code
program XMegaDrive;
{$WG-} {global Warnings on}
Device = xmega128A1, VCC=3.3;
{$BOOTRST $10000} {Reset Jump to $10000}
Import SysTick, RTClock, SerportC0, SerportC1, SerportD0,ADC_A, DAC_A;
From System Import LongWord, LongInt, fix64, Processes, Tasks, Pipes, PIDs;
From RTclock Import RTCtimer;
From SysTick import SystemTime32;
Define
OSCtype = int32MHz, PLLmul=4, prescB=1, prescC=1;
SysTick = 10, adj; // msec, correct the RTC32K timer for exact mSec timing
StackSize = $0100, iData;
FrameSize = $0100, iData;
Scheduler = iData;
TaskStack = $0040, iData;
TaskFrame = $0020;
RTclock = iData, DateTime; {Time or DateTime}
RTCsource = SysTick, adj;
//Serout für das Display
SerPortC0 = 115200, Stop1; {115200 Baud, 1Stopbit}
TxBufferC0 = 8,iData; {8 Byte Buffer und Int}
RxBufferC0 = 8, iData; {8 Byte Buffer und Int}
//Serport für den XPORT
SerPortC1 = 9600; {9600 Baud}
TxBufferC1 = 8,iData; {8 Byte Buffer und Int}
RxBufferC1 = 64, iData; {8 Byte Buffer und Int}
//Serport für den VDIP2
SerPortD0 = 9600, Stop1; {9600 Baud, 1Stopbit}
TxBufferD0 = 64,iData; {8 Byte Buffer und Int}
RxBufferD0 = 8, iData; {8 Byte Buffer und Int}
// ADC für die Betriebsspannungsüberwachung
ADCrefA = REF100; {intern 1.0V reference, input pins at PortA, 4 channels}
ADCprescA = 64; {prescaler 64}
ADCchansA = [0];
//DAC zum Einstelen des Motorstromes
DAC_A = chan01, REFaVCC;