Forum: Mikrocontroller und Digitale Elektronik AVR Atmega32 Probleme Eingang abfragen


von Rokx (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein Problem. Ich möchte einfach nur einen Eingang abfragen und 
demensprechend Ausgänge setzen bzw. rücksetzen. In der Simulation klappt 
das alles ganz gut nur wenn ich es auf den µC lade reagiert er garnicht 
auf den Eingang.

Ich schätze das es ein simples Problem ist und ihr mir vielleicht 
weiterhelfen könnt!

Ich benutze einen AVR Atmega32. Das Programm hab ich mal angehangen, ist 
nicht so spektakulär ;)

von foreninterner troll (Gast)


Lesenswert?

Auf PORTC sitzt JTAG. Per Fuse abschalten.

Und delay_ms ist doof.

von Holger P. (Gast)


Lesenswert?

Ich habe keine Ahnung von C

Aber könnte der Fehler hier stecken?
1
DDRD = 0x00;  //Alle bits von PORTD als Eingang deklarieren
2
PORTD = 0xff;  // Alle Bits von PORTC auf 0 setzen
3
DDRC = 0x00;  //PORTC als Eingang

Wo setzt du ein Ausgang?
Und warum den Port C löschen bevor er deklariert ist.

Aber wie getippt ich habe von C keine Ahnung. Ich liebe Asembler :-)

von xfr (Gast)


Lesenswert?

1
if ((PIND & 0x02) != 1) //PIND2 ungleich 1
Diese Bedingung ist immer wahr.

von Hanswurst (Gast)


Lesenswert?

Holger P. schrieb:
> Ich liebe Asembler :-)

So sehr, dass du es nicht mal richtig schreiben kannst?

von Holger P. (Gast)


Lesenswert?

Hanswurst schrieb:
> Holger P. schrieb:
>> Ich liebe Asembler :-)
>
> So sehr, dass du es nicht mal richtig schreiben kannst?

Ei ei ei das hier echt gesucht wird bis gefunden wurde ist doch klar. 
Hier haste Dein s.

von Rokx (Gast)


Lesenswert?

Hm ja erstmal danke für die schnellen antworten, habe JTAG 
deaktiviert(via Fusebits und Software) aber es geht immernoch nicht.

von Karl H. (kbuchegg)


Lesenswert?

Du musst dich irgendwann mal entscheiden, was in deiner SChaltung 
eigentlich Eingang und Ausgang sein soll, und dann auch demenstprechend 
die Ports konfigurieren.

1
  DDRD = 0x00;    //Alle bits von PORTD als Eingang deklarieren
2
  DDRC = 0x00;  //PORTC als Eingang


Alles kann nicht Eingang sein. Ein paar Ausgänge wirst du auch brauchen.


Diesen (berechtigten) Einwand
Beitrag "Re: AVR Atmega32 Probleme Eingang abfragen"
hast du korrigiert?

von Karl H. (kbuchegg)


Lesenswert?

Und machs halt für den ersten Versuch nicht zu kompliziert
1
#include <avr/io.h>
2
3
int main(void)
4
{
5
  DDRD  = 0x00;
6
  PORTD = 0xff;
7
  DDRC  = 0xFF;
8
9
  while(1)
10
  {
11
    if ((PIND & 0x02))
12
      PORTC |= (1<<PINC5);
13
    else
14
      PORTC &= ~(1<<PINC5);
15
  }
16
}

das reicht schon fürs erste um zu sehen, ob sich überhaupt was tut.

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.