www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny13 Programmieren


Autor: Sebastian F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich beschäftige mich seit ein paar Tagen damit einen ATtiny13 zu 
programmieren. Mal abgesehen von ein paar Anfängerfehlern (Reset als 
Ein-/Ausgang & Fusebitspielereien), die ich jetzt lasse, habe ich ein 
Problem:
Ich habe ein simples Programm, welches nicht läuft und weiss nicht, 
warum.
Ich benutze den Programmieradapter von lancos & PonyProg.
Das Programm soll -erstmal- einfach nur 2 LED's über Taster 
Ein-/Ausschalten.
Ich hoffe mir kann jemand helfen.
Programm:


.INCLUDE "C:\AVR\Test\tn13def.inc"
;
;Initialisierung;
;
  cbi DDRB,0
  cbi DDRB,1        ;Port 0+1 Eingänge
  sbi DDRB,3
  sbi DDRB,4        ;Port 3+4 Ausgänge
  sbi PORTB,0
  sbi PORTB,1       ;Pull-ups eingeschaltet
;
main:
  sbic PORTB,0
  cbi PORTB,3
  sbic PORTB,1
  cbi PORTB,4
  sbis PORTB,0
  sbi PORTB,3
  sbis PORTB,1
  sbi PORTB,4
rjmp main
end:

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin kein Assemblerspezialist, aber in C fragt man den Pin ab und nicht 
das Port.

Autor: peter-neu-ulm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sbic portb fragt nur den Zustand des port-FF's ab, aber nicht den 
Zustand des port-Pins. Der Pin kann extern auf 1 oder 0 geschaltet 
werden, der Befehl sbic portb,x erkennt das nicht.

Es muss der Zustand des Pins abgefragt werden, das geschieht z.B durch 
sbic pinb,x

Autor: Natürlich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ne seltsame Unart bei den AVRs. Bei den PICs gibts diesen Unsinn 
nicht.

Autor: Sebastian F. (snake080)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon einmal für die antworten!
Das lustige ist, dass es im Simulator funktioniert?! Ich hatte irgendwo 
im Datenblatt gelesen, dass wenn man die Port-Pins abfragt, der Status 
grundsätzlich gewechselt wird. Irgendsowas hatte ich schon mal gesehen, 
wo ich damit rumprobiert hatte, darum habe ich das gelassen... ich werde 
mich nochmal daransetzen.

Autor: Hallo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte man die Eingänge entprellen, wenn Taster daran 
angschlossen sind. Was ich einfach mal vermute.

Autor: Martin Meumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dien Programm kan nicht funktioniern da das portb register 
überhaubtnichts
hinter dem sdic zu tun hat .
Pass mal auf gets richtig
 .INCLUDE "C:\AVR\Test\tn13def.inc"
;
;Initialisierung;
;
  sbi DDRB,3
  sbi DDRB,4        ;Port 3+4 Ausgänge
  sbi PORTB,0
  sbi PORTB,1       ;Pull-ups eingeschaltet
;
main:
  sbic PINB,0
  cbi PORTB,3
  sbic PINB,1
  cbi PORTB,4
  sbis PINB,0
  sbi PORTB,3
  sbis PINB,1
  sbi PORTB,4
rjmp main
end:

So das müste jetzt gehen.
sag mal nach welchen Vorlagen Hast du dich eigentlich gerichtet?

Autor: Sebastian F. (snake080)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo schrieb:
> Vielleicht sollte man die Eingänge entprellen, wenn Taster daran
> angschlossen sind. Was ich einfach mal vermute.

Die Eingänge brauche ich nicht entprellen, da ich mir ein Testlayout 
geätzt habe. Die werden mit Jumpern gesetzt :)

Ich hatte vorhin leider nicht genug Zeit das mit den PIN-Abfragen zu 
testen.

Das umgeschriebene probiere ich morgen bei der Arbeit mal aus (da habe 
ich leider meinen Adapter liegen lassen).
Wenn ich das richtig verstehe brauche ich die Eingänge gar nicht 
definieren und sie sind Standartmäßig 0? Wäre logisch, da ich das 
Register ja quasi nicht beschrieben habe...
Die Pfadangabe hatte ich noch drin, weil ich versuchen wollte, ob 
Ponyprog evtl. die Datei nicht findet...
Und was ich immer noch nicht verstehe: Warum funktioniert alles im 
Simulator so schön?
Danke an alle, die mich unterstützen!

Autor: Sebastian F. (snake080)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an Martin.
Das Programm funktioniert so. Das Problem ist nur: Im Simulator vom 
AVR-Studio funktioniert es nicht!? Da werden keine Bits im PIN-Register 
angezeigt... Und warum funktioniert das, was im Simulator funktioniert, 
nicht in der richtigen Schaltung?

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.