Timer-Xmega Simulator

  • 1
  • 2
  • Page 1 of 2
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Timer-Xmega Simulator

 · 
Posted: 08.10.2016 - 10:07  ·  #1
Moin,
ich teste gerade einen TCC0 bei einem Xmega im Simulator.

Meine Hardware (Testplatine mit Led1) geht, Led1 geht 1mal sec an und aus.

Nur warum sehe ich das nicht im Simulator wenn ich einen Breakpoint im
Interrupt setze ? Also wenn der Timer Interrupt auslöst.?

Muss ich im Simulator noch etwas beachten ? schalter setzen ?


Code

         Interrupt TCC0_INTOVF;
         begin
Breakpoint->  Toggle(Led1);
         end;



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

Re: Timer-Xmega Simulator

 · 
Posted: 10.10.2016 - 14:01  ·  #2
Hallo Frank,

beim XMega werden nur vereinzelt Interrupts im SIM unterstützt.
Der Grund ist diese Unmenge an Interrupt Quellen und dazu noch
die Prioritäten.

Deshalb sollte beim Debugs der Hardware bzw. Interrupts immer das
ICE genommen werden.

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Timer-Xmega Simulator

 · 
Posted: 10.10.2016 - 17:47  ·  #3
Danke Rolf,
habe es auch mit bekommen, nun hab ich mir ein kleines 0,96 Oled
angeschlossen und lasse mir den TCC0CNT(L) + (H) ausgeben.


PS.
Rolf da wir gerade beim Interrupt sind, ich habe 3 Pin´s per PCIntD(0..2)
Kann man diese Interrupts, diese Eingangspins auch einzeln abschalten ?
Beim Timer gibts ja auch 3 Prioritäten.
Sorry das ich Frage, aber ich weiß das nicht.


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

Re: Timer-Xmega Simulator

 · 
Posted: 10.10.2016 - 18:30  ·  #4
Hallo Frank,

ja das geht, aber ich habe das noch nicht gemacht. Zuständig sind da die Register
INT0MASKppp und INT1MASKppp, je nachdem welche Maske ursprünglich zur Freigabe benutzt wurde.

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Timer-Xmega Simulator

 · 
Posted: 10.10.2016 - 18:32  ·  #5
SUPER ! Danke das wollte ich wissen, dann kann ich in der pdf Datei suchen. :3some:



Gruß Frank
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Timer-Xmega Simulator

 · 
Posted: 12.10.2016 - 15:14  ·  #6
Hallo, sorry das ich hier noma was schreiben muss. Deine info war 100%
Interrupts lassen sich schön abschalten.

Nur brauche ich bei rising edges und falling edges einen Interrupt,

Im mom Arbeite ich zb. hier mit.. nur kann ich damit keinen BothEdges einstellen
Code

Import  …, PCintD;
 PCintDmask = $FF; // all pins used
 PCintDedge = $00; // all falling edges





Und wie wäre es hiermit ? darf man hier nur einen pin von einen port benutzen ?
Oder wie stellt man es an das ich mehrere Interrupt CallBack für einzelne Pins eines Port C
bekomme ?
Hier macht mir die Interrupt CallBack Probleme.


Code

4.8.3.1 Interrupt Pins PortIntA .. PortIntR

Define  PortIntD = 0, PullUp, bothedges;  // pin0 used, Pullup on, both edge
0..7 bestimmt den Port Pin

Procedure PortIntD; // Interrupt CallBack
begin
end;





Gruß Frank
Harald_K
 
Avatar
 
Subject:

Re: Timer-Xmega Simulator

 · 
Posted: 12.10.2016 - 18:48  ·  #7
muß das nicht

interrupt PortIntD;
begin
...
end;

heißen statt procedure??
o
Dabei muß man natürlich auf die zu rettenden Register achten .... $nosave / $noshadow oder eben alle - das können je nach Proz ne ganze Menge sein.
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Timer-Xmega Simulator

 · 
Posted: 12.10.2016 - 19:14  ·  #8
Hallo Harald, ne diese Procedure ist auch ein interrupt Aufruf.
Nur man kann hier nur rising und falling edges einstellen. Was im Simulator
unter PINxCTRLC-- ISC[2:0] nicht angezeigt wird. (Verstehe ich nicht :-) )

Code

Import  …, PCintD;
Jeder PCint muss definiert werden, welche PortPins und der Pin Status.
 Define 
   PCintDmask = $FF; // all pins used
   PCintDedge = $00; // all falling edges


ich denke schon das man bei einen Xmega dieses Reg PINxCTRLC-- ISC[2:0] einstellen könnte.
Code

ISC[2:0] Group configuration description
000 BOTHEDGES Sense both edges
001 RISING Sense rising edge
010 FALLING Sense falling edge
011 LEVEL Sense low level(1)
100 Reserved
101 Reserved
110 Reserved
111 INTPUT_DISABLE Digital input buffer disable








PS...
Ich glaube bei den Mega´s ist das so mit Interrupt
From System Import PCINTserv0, PCINTserv1

Interrupt PCint00; // PinB.0 mega168
begin
if _ACCB <> 0 then

else

endif;
end;



Gruß Frank
  • 1
  • 2
  • Page 1 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   140   154 · Page-Gen-Time: 0.335702s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI