Servus, ich habe heut das EvalBoard von ALVIDI(http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html) bekommen und wollte gleich los legen. Hab mir ein Tutorial gesuch. Unter Device Programming kann ich mir die Target Voltage und die Signatur anschaunen und die Fuse Bits auslesen... also Verbindung habe ich. Mit folgendem Programm wollte ich die Board eigenen LEDs ansteuern: #include <avr/io.h> int main(void) { PORTF.DIRSET = 0xFF; PORTF.DIRCLR = 0xF0; while(1){ } } was aber nicht funktioniert hat die LEDs blieben aus. Nach ein bissal testen habe ich die Codezeile "PORTF.DORCLR = 0xF0;" 100 mal kopiert. Nach dem Uploaden haben die 4 LEDs geleuchte. Nun bin ich am verzweifeln. Hat jemand von euch zufällig einen Plan warum das so ist? Merci schon mal.
versuchs mal proberweise so:
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | { |
5 | |
6 | while(1){ |
7 | PORTF.DIRSET = 0xFF; |
8 | PORTF.DIRCLR = 0xF0; |
9 | } |
10 | |
11 | } |
Nein funktioniert leider auch nicht.
Du schaltest ja nur die Ports auf Output bzw. Input. Probiere mal das:
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | |
6 | PORTF.DIRSET = 0xFF; |
7 | PORTF.OUTCLR = 0xF0; |
8 | |
9 | while(1); |
10 | |
11 | }
|
Ohhh... Sorry hab mich verschrieben hab es gerade noch mal überprüft funktioniert mit .OUTSET nicht auser ich kopier den Befehl 100mal :(
OUTCLR musst du machen nicht OUTSET. Die LEDs gehen an, wenn die PINs auf LOW geschaltet werden. Und die Jumper JP5-1 - JP5-4 hast du ja gesteckt, richtig, sonst würde ja gar nichts passieren mit den LEDs.
Benutzt du vielleicht das AVR-Studio 6 mit SP2? Da gibt es leider einen Bug, weswegen die letzte Seite nicht geschrieben wird. Ohne SP2 gehts.
Achja, wenn das Board mit Bootloader ausgeliefert wird, hast du den Bootloader vermutlich beim Brennen auch gelöscht, und musst daher das Fuse-bit "BOOTRST" auch wieder auf Application stellen.
Detlev T. schrieb: > Benutzt du vielleicht das AVR-Studio 6 mit SP2? Da gibt es leider einen > Bug, weswegen die letzte Seite nicht geschrieben wird. Ohne SP2 gehts. Wobei da eigentlich dann auch ein Verify Error kommen sollte.
Hallo, so funktioniert es! Blinken geht sehr schnell! Nur mit Oszi. Oder halt mehr _delay_ms() einbauen int main(void) { PORTF.DIRSET = PIN0_bm; // PORTF PIN0 Als Ausgang verwenden while(1){ PORTF.OUTCLR = PIN0_bm; // Ausgang low _delay_ms(100); PORTF.OUTSET = PIN0_bm; // Ausgang high _delay_ms(100); PORTA.OUTCLR = PIN0_bm; // Ausgang low } } Gruß G.G.
Detlev T. schrieb: > Benutzt du vielleicht das AVR-Studio 6 mit SP2? Da gibt es leider einen > Bug, weswegen die letzte Seite nicht geschrieben wird. Ohne SP2 gehts. ??? Was ???
Nur Doof, das bei dem Board vom Chris keine LEDs an PORTF Pin0 sind. Also wenn dann so:
1 | #include <avr/io.h> |
2 | #include <util/delay.h> |
3 | |
4 | int main(void) |
5 | {
|
6 | |
7 | PORTF.DIRSET = (1<PIN7) | (1<PIN6) | (1<PIN5) | (1<PIN4); //LED Pins auf Ausgang |
8 | |
9 | PORTF.OUT = (1<PIN7) | (1<PIN5); //LED an Pin4 und Pin6 einschalten |
10 | |
11 | while(1){ |
12 | //LEDs Toggeln
|
13 | PORTF.OUTTGL = (1<PIN7) | (1<PIN6) | (1<PIN5) | (1<PIN4); |
14 | _delay_ms(500); |
15 | }
|
16 | |
17 | }
|
Dann sollten die LEDs im 500ms-Takt wechselblinken (sofern F_CPU richtig gesetzt ist) Ingo schrieb: > Detlev T. schrieb: >> Benutzt du vielleicht das AVR-Studio 6 mit SP2? Da gibt es leider einen >> Bug, weswegen die letzte Seite nicht geschrieben wird. Ohne SP2 gehts. > > ??? Was ??? Ja SP2 hat ein Bug mit einigen Xmegas. Kommt dann auch immer ein Verify error. Lieber 6.1 Beta nehmen.
Hmm, also ich hatte bisher keine Probleme mit einem Xmega32A4. Wo steht der Bug irgendwo? Bin leider gerade mit'n Handy on, da kann man sich pdfs schlecht angucken...
Also mit dem Atmel Studio 6.1 funktioniert jetz einwandfrei! Vielen dankt für die schnelle Hilfe. Schönen Abend noch Chris
Ingo schrieb: > Wo steht > der Bug irgendwo? Guckst du hier: http://asf.atmel.com/bugzilla/show_bug.cgi?id=2941
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.