Pin Abfrage sbic mit Sprungbefehl rcall

OP #1134186
Lesenswert?
• ▲
▼
Hallo ,

ich versuche mit dem Timer 1 ein Servo zu steuern.

OCR1A ist auf die 20ms periode eingestellt und schaltet den Port wieder 
ein und stellt das Zählregister auf Null. OCR1B ist veränderbar und soll 
den Wert 1ms bis 2ms je nach Drehlage haben.

Jetzt zu meinem Problem.
In der mainloop möchte ich nur die Pin´s abfragen und dann mit rcall ein
Unterprogramm aufrufen in dem der Wert von OCR1B abgeändert wird.

mainloop:
   sbic Pinb,0
   rcall mitte

   sbic Pinb,1
   rcall up

   sbic Pinb,2
   rcall down
rjmp mainloop

----------------------------------------------

wenn ich das Programm so schreibe fährt das Servo in die Position
ohne sbic



mainloop:

rcall up

rjmp mainloop



Habe das Programm im Anhang auf den Chip aufgespielt und es funktioniert 
nur teilweise.

Wenn ich die Befehle sbic ausklammere und nur einen rcall zulasse fährt 
das Servo in die Stellung die mit dem Unterprogramm erreicht werden 
soll.

Lass ich aber die mainschleife wie ich sie im Programm geschrieben habe 
, kommt mein Servo ein zuckel und fährt nicht in die Stellung.
Eigentlich sollte wenn keine Taste gedrückt ist in der Schleife nichts 
passieren es werden alle rcall übersprungen.

Hat jemand eine Ahnung was das ist ?


Habe den Stack inialisiert damit der nach dem Unterprogramm auch wieder 
an die gleiche stelle gesprungen werden kann.

Habe im AVR Studio das Programm simuliert , dort scheint alles zu gehen.


Über einen Tipp würde ich mit freuen.

Joachim
Angehängte Dateien:
Gast #1134234
Lesenswert?
• ▲
▼
Was hast Du an PB0, PB1 und PB2 angeschlossen?

Falls es Taster sind (das suggerieren mir die aktivierten PullUps), sind 
sie gegen GND geschaltet?

Falls ja, dann sind sie L-aktiv, dann müsstest Du sie mit SBIS abfragen.

Falls es um Taster geht, solltest Du Dich demnächst mal mit 
Entprellung beschäftigen. Falls nicht, dann nehme ich alles zurück 
und behaupte das Gegenteil... ;-)

...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.