mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90S1200


Autor: Niklas Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe die folgende Zeilen in den AT90S1200 geladen.
Haut leider nicht hin.
Led funktionieren mit einem Blinkprogramm.
Die Schalter haben 10 K Pullup Widerstände drin.
Danke für eure Hilfe



         ldi r16, 0xFF
         out 0x17, r16
         ldi r16, 0x00
         out 0x11, r16
loop:
         in r16, 0x10
         out 0x18, r16
         rjmp

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo,
Wenn ich das richtig sehe fehlt dort die includedatei und bei rjmp wohin 
er springen sollen! Ausserdem wird die leuchtdiode dauerleuchten da du 
es nicht verfolgen kannst! So ein Prozessor hat 8 Mhz das heißt minimum 
4mio befehle die Sekunde.
Peter

Autor: Niklas Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Oh.

Sorry. Habe beim Komentare weglöschen das Wort loop mit weggelöscht. Ich 
habe gedacht, das ich die includedatei nur
brauche, wenn ich nicht mit direkten Speicheradressen arbeite
sondern mit Namen wie z.B. DDRB usw.
Das Blinkprogramm hat so hingehaut.
Und das mit dem Blinken verstehe ich überhaupt nicht.
Ich lese doch sehr schnell den Zustand der Schalter ein.
Und schreibe sehr schnell den Zustand wieder raus.
Ob ein oder aus.
Aber bei mir bleibt sie immer dunkel.

Danke

Bernhard

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere es doch lieber mal mit! Wird dich doch nicht umbringen!
Peter

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Niklas
Dein Prgramm sieht so aus.

         ldi r16, 0xFF
         out 0x17, r16
         ldi r16, 0x00
         out 0x11, r16
loop:
         in r16, 0x10
         out 0x18, r16          Hier liegt der Fehler PORT B
         rjmp

 Hier meine Änderungen

         ldi r16, 0xFF            Port B als Eingang
         out 0x17, r16
         ldi r16, 0x00            Port D als Ausgang
         out 0x11, r16
loop:
         in r16, 0x16            Port B einlesen
         out 0x12, r16           Ausgabe auf Port D
         rjmp loop

Sieht aber schön sowas im Simulator

Hoffe es stimmt so.

MFG

Dieter

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Niklas,

Hmmm, abgesehen von dem fehlendem loop und der direkten 
Registeraddressangabe, schaut dein Code wie im AVR-Tutorial aus 
(http://www.mikrocontroller.net/tutorial/io-basics.htm).
Hab dein Code mit dem Simulator getestet (nur noch das loop eingefügt) 
und es geht. Vieleicht noch mal die externen Beschaltung überprüfen. 
Vorallem die Schalter Beschaltung an Port D.

@Dieter: Leider war deine Hoffnung falsch.
         ldi r16, 0xFF Port B als Eingang
         out 0x17, r16
0xFF macht ein Port zum Ausgang
         ldi r16, 0x00 Port D als Ausgang
         out 0x11, r16
und 0x00 einen Port zum Eingang.
Damit stimmt dann auch das einlesen und ausgeben auch nicht.
Wenn es bei dir im Simulator geht würde ich micht wundern?


Gruss Martin

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus

Natürlich hast Du Recht. Nach ein paar Bit's für den Körper sieht man 
den Wald vor lauter Bäumen nicht mehr.

Hier also die Lösung ??


         ldi r16, 0x00 ;Port B als Eingang
         out 0x17, r16
         ldi r16, 0xFF ;Port D als Ausgang
         out 0x11, r16
loop:
         in r16, 0x16 ;Port B einlesen
         out 0x12, r16 ;Ausgabe auf Port D
         rjmp loop

MFG
Dieter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.