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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.