SPI_SS beim XMega?

  • 1
  • 2
  • Page 2 of 2
ThomasW69
 
Avatar
 
Subject:

Re: SPI_SS beim XMega?

 · 
Posted: 03.10.2010 - 08:38  ·  #9
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?
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;     


rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SPI_SS beim XMega?

 · 
Posted: 03.10.2010 - 17:50  ·  #10
Hallo Thomas,

1. Toggle(PinX.n) kann nicht tun. Einen Pin toggeln macht keinen Sinn. So gehts: Toggle(PortX.n)
2. Durch die komplett andere Clock Generierung beim XMega und die Möglichkeit den internen 32k-Oszillator zu tunen, kann direkt der SysTick optimiert werden. Daher entfällt hier das adj beim RTCclock.

rolf
ThomasW69
 
Avatar
 
Subject:

Re: SPI_SS beim XMega?

 · 
Posted: 03.10.2010 - 18:20  ·  #11
Ich hatte beide Varianten ausprobiert. Hab dann wohl die mit demPinx hier rein kopiert. Man versucht halt auch die unmöglichen Sachen wenn man nicht weiter kommt :-)
PortX geht natürlich auch nicht.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SPI_SS beim XMega?

 · 
Posted: 03.10.2010 - 20:33  ·  #12
Hallo Thomas,

ok, da war noch ein Bug im RTC Treiber der u.U. die Call-backs blockiert hat. Bug beseitigt. Neues Update steht zum Download bereit.

rolf
ThomasW69
 
Avatar
 
Subject:

Re: SPI_SS beim XMega?

 · 
Posted: 04.10.2010 - 07:24  ·  #13
Wow, das ging ja wieder fix. Super Service!!
  • 1
  • 2
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   93   107 · Page-Gen-Time: 0.040356s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI