Forum: Mikrocontroller und Digitale Elektronik Blinker funktioniert nicht am AT90S2313


von Onur Demir (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

die beigefügte Datei funktioniert nach dem ver*hex*en, und via PonProg
nicht auf meinem AT90S2313.

Die LED am Port PB0 leuchtet immmer, sobald ich das ISP von der
parallelen Schnittstelle entferne. Ich bin der Meinung, dass sich
eigentlich nichts tut, egal ob ich diese Blinker Datei lade oder die
Datei von der Seite:
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Mein Testlayout ist ebenfalls von der Seite, allerdings mit
stabilsiertem Netzteil.

Was ist an meinem Code falsch?
Warum blinkt die LED (im Sinne vom Blinken) nicht, wenn ich ebenfalls
die originale Datei von der obigen Seite verwende?

Vielen Dank für ein paar Tips.

MFG

Onur

von AndreasH (Gast)


Lesenswert?

Ist doch klar wieso: du gibst ständig 0xFF aus.
Du musst wechseln einmal 0xFF (EIN), dann 0x00 (AUS);

Ausserdem ist das falsch:
  ldi    mp,0x00
  out    DDRB,mp

Damit setzt Du den Port als Ausgang.

Sieh Dir mal das Beispielprogramm von der Seite an.
Dort gibt es Verzögerungen (rcall wait).
Ich glaube nicht, selbst wenn Du wechselst, dass Dein Auge so schnell
ist.

versuch es mal damit:

  ldi    mp,0xff
  out    DDRB,mp

loop:
  ldi  mp,0xFF
  out  PORTB,mp
  rcall   wait
  ldi  mp,0x00
  out  PORTB,mp
rjmp  loop



Grüße
Andreas

von AndreasH (Gast)


Lesenswert?

Sorry,

sollte heissen: "Damit setzt Du den Port als Eingang"

Ausserdem muss es so sein:
loop:
  ldi  mp,0xFF
  out  PORTB,mp
  rcall   wait
  ldi  mp,0x00
  out  PORTB,mp
  rcall   wait
rjmp  loop

Ist schon spät.

von Onur Demir (Gast)


Lesenswert?

Hallo,

wenn ich aber will, dass die LED ausgeht, z.B.:

DEF  mp = R16
  RJMP  main
main:
  ldi    mp,0xFF
    out    DDRB,mp
loop:
  ldi  mp,0x00
  out  PORTB,mp
rjmp  loop

Nachdem ich die parallele Schnittstelle entferne leuchtet die LED
wieder. Darf sie doch nicht. Sie leuchtet immmer noch, auch wenn ich
Vcc entferne, und wieder anschließe.

Bitte nicht falsch verstehen, ich will in die µC Programmierung
einsteigen, und verstehe mein Problem noch nicht.

Danke für die Antworten.

Onur

von Hartmut Gröger (Gast)


Lesenswert?

hi

Ich kenne dein Layout nicht, aber meisstens ist es so, dass die LED
über Vorwiderstand mit der Anode an VCC liegt und die Katode am Port.
Das heisst wenn du die Ausgänge auf L legst ,wie in deinem zweiten
Code, leuchten die Dioden. Wenn die Ausgänge auf H gelegt werden, sind
die Dioden aus.

Mfg HG

von Onur Demir (Gast)


Lesenswert?

Hallo,

erst einmal Danke für die Antworten.
Mein Layout haben ich nach der Zeichung von der folgenden Seite
aufgebaut, für den AT90S2313:

http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Ich werde heute abend nocheinmal mein Programm analysieren und meinen
µC flashen. Ziel ist es, daß die LED ausgeht. Wenn das geht, ist alles
okay. Ärgerlich ist halt, dass ich mein ISP von der parallelen
Schnittstelle entfernen muss, damit das Flash Programm läuft.

Danke für die Tips.

Grüße

Onur

von Jens (Gast)


Lesenswert?

Könnte es etwas mit dem Analog Comparator zu tun haben? Der nämlich ist
standardmäßig aktiviert (Bit ACD in ACSR-Register ist per Default 0).

von AndreasH (Gast)


Lesenswert?

Lies einfach mal was Hartmut geschrieben hat.

Du musst FF statt 00 ausgeben.

von Onur Demir (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

irgendwie traue ich der ganzen Sache nicht.

Mein Code lautet:

DEF  mp = R16         ; Register R16 = mp
  RJMP  main          ; Springe zu main
main:
  ldi    mp,0xFF      ; lade 0xFF in das register R16
  out    DDRB,mp      ; DDRB als Ausgang definieren
loop:
  ldi  mp,0x00        ; lade 0x00 in das register R16
  out  PORTB,mp       ; gebe 0x00 am PortB aus (also auch beim PortB
0)
rjmp  loop

Entferne ich jetzt die parallele Schnittstelle, leuchtet die LED immer
noch.
Wenn ich die parallele Schnittstelle dran habe, liegt am PortB0 = 3,8V.
An der Kathode, die ja an Vcc liegt = 5,2V. Am Widerstand liegen 0,3V.
Also liegen an der LED = 1,1V.
Auch wenn ich den Flash Speicher lösche, leuchtet die LED trotzdem.

Beigefügt ist mein Layout.

MFG

Onur

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.