Hallo! Ich hab emir das XMEGA A1 USB Board aus dem shop gekauft http://shop.avr-praxis.de/development-tools/mc-module/xmega-a1-usb.html und will es mit dem AVRStudio4 und dem AVRisp mkII programmieren. Da leider das Datenblatt des XMEGA A1 USB nicht gerade aussagekräftig ist, bin ich mir nicht sicher, ob ich die Spannungsversorgung richtig angeschlossen habe. Ich habe 3,0 V an die PINs AVCCA und AVCCB angelegt (Datenblatt XMEGA A1 USB Seite 4 http://shop.avr-praxis.de/media/docs/xmega-a1-usb_datasheet.pdf). Wenn ich nun im AVRStudio mich mit dem AVRisp mkII verbinde und ein hex File aufspiele, steht unten in der Statusleiste auch überall OK!. Mein Programm ist folgendes: #include <avr/io.h> int main (void) { PORTF.DIR = 0xFF; PORTF.OUT = 0xFF; while(1) { if(PORTF.OUT == 0xFF) { PORTF.OUT = 0x00; } else { PORTF.OUT = 0xFF; } } return 0; } Also einfach nur die PortBank F als Ausgang definiert und die Pins der Portbank solen dann ständig toggeln. Ich habe eine LED angeschlossen, jedoch tut sich nichts. Weiß jemand einen Rat für mich? Gruß, Markus
Probier mal:
1 | int main (void) |
2 | {
|
3 | PORTF.DIR = 0xFF; |
4 | |
5 | while(1) |
6 | {
|
7 | PORTF.OUTTGL = 0xFF; |
8 | }
|
9 | |
10 | return 0; |
11 | }
|
Ach so, das Toggeln siehst du mit einer LED natürlich nicht... Da musst du noch ein _delay_ms(500) o.ä. einbauen (Nicht vergessen dem Projekt die Taktfrequenz mitzuteilen). Ansonsten blinkt die LED viel zu schnell.
So, hab meinen Code jetzt mal mit PORT Bank A versucht und es läuft, warum das mit F nicht geht muss ich nochmal nachgucken. Jedenfalls weiß ich jetzt schonmal, dass der µC funktioniert :-D. Trotzdem Danke für eure Mühe! Gruß, Markus
Hallo Markus, ich nutze das Mikrocontrollermodul ebenfalls. Ich weiß nicht ob du dein Problem inzwischen gelöst hast. Also wegen der Betriebsspannung, hier gilt natürlich die Betriebsspannungsgrenzen des Xmega128A1, also Obergrenze ist 3,6V. Du setzt den ganzen PortF einfach als Output, bedenke dass der Usart0 von PortF an der USB-UART-Bridge angeschlossen ist, bzw. am Leveltranslator zur Bridge. RXD von USARTF0 sollte Input bleiben! Die OnBoard-LED (PQ3) kannst du so toggeln:
1 | PORTQ.DIRSET = (1<<PIN3); |
2 | |
3 | while(1) { |
4 | |
5 | PORTF.OUTTGL = (1<<PIN3); |
6 | |
7 | delay_ms( 250 ); |
8 | |
9 | }
|
Wahrscheinlich hast du das schon gemacht, ansonsten schau dir mal bei avr-praxis das Thema "Schnellstart" im Supportbereich des Moduls an, mir hat es jedenfalls sehr geholfen, da ich bisher nur mit normalen AVRs zu tun gehabt habe und der Xmega ist doch etwas anders zu programmieren Stefan
Sorry, wenn ich nochmal poste. Bei dem C-Beispiel meinte ich natürlich
1 | PORTQ.OUTTGL = (1<<PIN3); |
Stefan
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.