Forum: Mikrocontroller und Digitale Elektronik Servomotor ansteuern in Bascom


von AT32_Bascom_Programmierer (Gast)


Angehängte Dateien:

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

von hermy (Gast)


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.

von AT32_Bascom_Programmierer (Gast)


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

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.