Hallo, versuche mich grade in die Welt der uC einzuarbeiten. Leider stoß ich schon auf die ersten Schwierigkeiten. Ich habe mir das ehajo ateval + ATmega328P geholt und habe erfolgreich auch das Testprogramm übertragen. Jetzt bin ich halt weiter am probieren und habe anscheinend einen Fehler in der Programmierung. Durch debuggin Funktion wollte ich eigentlich raus finden was ich falsch gemacht habe. Leider ist im Atmel Studio 6 die Felder "Process View" ausgeraut und die Fenster sind nicht die gleichen wenn ich den Simulator einschalte. Mach ich etwas falsch oder geht das einfach nicht mit den Board bzw. uC.
Sorry für Doppelpost aber falls es hilft der code. Beim erstellen wird kein Fehler ausgegeben.
1 | |
2 | |
3 | #include <avr/io.h> |
4 | |
5 | |
6 | int main(void) |
7 | {
|
8 | |
9 | DDRD |= ( 1 << PD5) | ( 1 << PD6); |
10 | PORTD |= (1 << PD2) | (1 << PD3); |
11 | DDRD &= ~(( 1 << PD2) | (1 << PD3)); |
12 | |
13 | |
14 | while(1) |
15 | {
|
16 | //PORTD |= (1 << PD5) | (1 << PD6);
|
17 | |
18 | if (PINC & (1 << PD2)) |
19 | {
|
20 | PORTD |= (1 << PD5); |
21 | }
|
22 | |
23 | if (PINC & (1 << PD3)) |
24 | {
|
25 | PORTD |= (1 << PD6); |
26 | }
|
27 | |
28 | }
|
29 | }
|
Haben Deine Pins am Port C einen definierten Pegel? Stichwort: Pullup (intern) Du willst bestimmt den Ausgang auch wieder ausschalten, wenn die Taste(?) gelöst wurde, oder? PORTX &= (1 << PXY);
Hallo, ja das hatte ich vor und habe es auch gelöst. Aber dennoch kann ich nicht debuggen besonders wenn es später komplizierter wird möchte ich auf diese Funktion nicht verzichten.
1 | int main(void) |
2 | {
|
3 | |
4 | DDRD |= ( 1 << PD5) | ( 1 << PD6); |
5 | PORTD |= (1 << PD2) | (1 << PD3); //Eingang Defeniert |
6 | DDRD &= ~(( 1 << PD2) | (1 << PD3)); //Interne Pull-Up Widerstände werden benutzt |
7 | |
8 | |
9 | while(1) |
10 | {
|
11 | //PORTD |= (1 << PD5) | (1 << PD6);
|
12 | |
13 | if (!(PIND & (1 << PD2))) |
14 | {
|
15 | PORTD |= (1 << PD5); |
16 | }
|
17 | else (PORTD &= ~(1 << PD5)); |
18 | |
19 | |
20 | if (!(PIND & (1 << PD3))) |
21 | {
|
22 | PORTD |= (1 << PD6); |
23 | }
|
24 | else (PORTD &= ~(1 << PD6)); |
25 | }
|
26 | }
|
holger schrieb: > Letzter Push Versuch :) > > Mit deinem Spielzeugboard kannst du nicht debuggen. Richti gnetter gesagt ist auf der Platine nur ein Programmer ohne Debuggingfunktion. Gruß
Guten Morgen, gerade die atmega haben einen Hardware Usart eingebaut, nutze den und sende deine Meldungen über die serielle Schnittstelle. http://dokuwiki.ehajo.de/bausaetze:ateval:loetjumper http://dokuwiki.ehajo.de/artikel:ateval:firmware_beides
holger schrieb: > Mit deinem Spielzeugboard kannst du nicht debuggen. ich würd das prinzipiell anderes sehen: egal welches Programmierboard er hat, mit dem Spielzeugprozessor hat er keine Möglichkeit um vernünftig zu debuggen, der hat nämlich kein JTAG oder TWD. Da bleibt nur die Methode von Uwe, dass man per serieller Schnittstelle Debugausgaben erzeugt. Oder, da das Spielzeugboard von eHaJo ja genügend Spielzeug drauf hat: Ich bevorzuge LEDs zum Debuggen.
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.