Forum: Mikrocontroller und Digitale Elektronik ehajo ateval Debug


von uC-Tester (Gast)


Angehängte Dateien:

Lesenswert?

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.

von uC-Tester (Gast)


Lesenswert?

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
}

von Schiko (Gast)


Lesenswert?

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);

von uC-Tester (Gast)


Lesenswert?

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
}

von uC-Tester (Gast)


Lesenswert?

Letzter Push Versuch :)

Warum ist das Feld "Process View" ausgeraut?

von holger (Gast)


Lesenswert?

>Letzter Push Versuch :)

Mit deinem Spielzeugboard kannst du nicht debuggen.

von daniel (Gast)


Lesenswert?

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ß

von Uwe (de0508)


Lesenswert?

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

von plömpel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.