mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Servomotor ansteuern in Bascom


Autor: AT32_Bascom_Programmierer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: hermy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: AT32_Bascom_Programmierer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.