Servomotor ansteuern in Bascom

Gast #1683531
Lesenswert?
• ▲
▼
hallo ich habe ein kleines Bascom Programm geschrieben welches 2 
Servomotoren ansteuert... und dabei einen Text auf die LCD anzeigt...

Lade ich diesen Programmausschnitt nun auf meinen ATMega 32 funktioniert 
alles einwandfrei.(servotest)

Lade ich es nun mit den kompletten Programm rein, geht's nicht. die 
Texte werden kurz angezeigt, dann nach dem letzten bewegt sich ein servo 
ganz schnell nach einer Richtung dann wieder zurück...(AT32_int_... ->> 
ganz am ende)

Erst habe ich die Ports B.0 und B.1 dafür genutzt, doch da das nicht 
funktionierte, habe ich es mal mit Port D.2 und D.3 versucht doch auch 
hier erfolglos.

Dann habe ich mal die Servowerte auf die LCD Anzeige gebracht, diese 
schienen ok, also gehe ich davon aus das keine Impulse an die Servos 
gesendet werden.

Bitte um Hilfe... Gruss AT32_Prog
Angehängte Dateien:
Gast #1683630
Lesenswert?
• ▲
▼
hallo,

das problem kommt mir in gewisser weise bekannt vor.

schätze, die interrupts von LCD- und servosteuerung beißen sich...
(bzw. eventuell was anderes, was ein interrupt in beschlag nimmt)

kannst du den programmtext mal direkt hier einfügen, dann kann man 
schneller lesen und besser zitieren.

abhilfe könnte schaffen, wenn du das LCD per befehl abschaltest, wenn es 
nicht benötigt wird. kann dann bei bedarf wieder eingeschaltet werden.

die servosteuerung ist eine relativ zeitkritische routine. so lange der 
controller nichts anderes macht, läuft alles wunderbar. wenn er sich 
aber immer mal wieder kurz ums LCD (oder was anderes) kümmern muss, 
werden die zeitimpulse plötzlich verlängert, die servos denken "hupps, 
ich stehe auf der falschen position" und kriegen zuckungen...

so, hoffe, das war jetzt nicht ganz an deinem problem vorbeigeredet...

poste wie gesagt die programme mal direkt hier im textfenster.
Gast #1683653
Lesenswert?
• ▲
▼
hallo... das komplette Programm kann ich nicht in das Textfenster setzen 
da es sich hierbei um +- 16 A4 Seiten handelt...

Da ich ein kleines Testprogramm geschrieben habe (Servotest) das 
funktioniert, auch mit LCD, gehe ich davon aus das es nicht an der LCD 
Anzeige liegt.

Jedoch sind noch 2 weitere Interrupts in meinem Programm, einmal der 
Timer 1, dieser ist jedoch noch nicht in Gebrauch...

und dann habe ich noch einen Interrupt, der erkennt wenn ein Signal über 
die RS323 Schnittstelle rein kommt..

Im groben funktioniert es so: sobald ein Signal rein kommt (über RS232) 
wird in eine ISR gesprungen, hier wird der Empfangene Code bearbeitet, 
dann wird nach einem Passwort gefragt, wird dieses Richtig eingegeben, 
soll sie "Servoroutine" laufen... diese dient dazu eine Türe zu öffnen

hoffe das ich mich verständlich ausgedrückt habe

Gruss AT32_Prog

Antwort schreiben

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.

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.