-
Bascom Simulator
Hallo!
Ich baue gerade ein Modellboot und möchte dieses per Microcontroller steuern. Ich hab einen attiny13 mit bascom programmiert. Leider funktioniert das Servo, das ich damit ansteuern will damit nicht.
Das hat dazu geführt, daß ich den Simulator nutzen wollte. Ich lasse mir die Variable Servo(1) ausgeben. Diese ändere ich in einem Loop immer wieder, leider bleibt der Simulator immer im Loop stecken, was mich vermuten läßt, daß das dann auch das Problem beim Servoansteuern ist...
hier der Code
Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 22
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Portb.0 = Output
Disable Interrupts
Do
Servo(1) = 50
Waitms 2000
Servo(1) = 150
Waitms 4000
Loop
Allzu tief konnte ich bis jetzt noch nicht in die Materie eintauchen...
Vielleicht kann mir jemand helfen bzw. einen Tipp geben
lg
Wolfgang
-
Re: Bascom Simulator
Zitat:
Zitat von s17
Disable Interrupts
Damit die Servos funktionieren, wirst du die Interrupts global freigeben müssen. Die Routine verwendet die ISR von Timer0.
Mit Waitms 2000 wirst du im Simulator sehr lange (mehrere Minuten) warten müssen, bis sich da was tut. Entweder du gibst zum Testen kleinere Wartezeiten ein oder du schreibst am Anfang $sim in deinen Code. Dann werden die Wartezeiten ignoriert.
-
aha, jetzt gehts, aber ich dachte ms bedeutet millisekunden... Danke! disable interrupts habe ich mit enable interrupts ersetzt
Leider schaff ich es noch immer nicht den Servo alle paar Momente umzustellen... Vielleicht kannst du mir nochmal helfen?
Ich betreibe das Netzgerät mit 5V und hänge an Pin4 den Minuspol und an Pin8 den Pluspol. Pin 5 verbinde ich mit einer Litze mit dem orangenen Kabel des Servos. Das Servo selber schließe ich an 6 Volt an.
Habe ich da was falsch gemacht. Kann ich irgendwie überprüfen welcher Code sich im Speicher des Mikrocontroller befindet? Oder reicht es wenn keine Fehlermeldung kommt wenn ich den "Programm Chip" Button drücke?
Danke schon mal für die Hilfe...
Wolfgang
-
ja für den µC aber der rechner macht das nicht so schnell der brauch dafür ewig
und dann noch der tipp stell das bei bascom so ein das du den chip gleich danach ausliest und vergleichst wenn ein fehler aufgetaucht ist dan siehst den
oder drückst verify flash Rom against buffer
-
Hallo!
Ein Tipp:
Du mußt GND vom Servo mit GND vom µC verbinden.
MfG
Rone
-
Hallo!
Also auf dem Chip dürfte das Programm oben sein... Aber funktionieren tut das Werkl noch immer nicht.
@Rone: Das mit dem Verbinden der beiden Grounds verstehe ich nicht ganz, wenn ich zwei Spannungen habe. Dann habe ich zwei Spannungen die auf dem Ground zusammentreffen (Netzteil mit ca. 5 Volt und Servo mit 6 Volt) oder?
Kannst du mir vielleicht alle Verbindungen die ich machen muß aufschreiben, damit nichts kaputt mache. Ich habe davon null Ahnung...
lg
Wolfgang
-
GND müssen verbubnden sein sonst hast Du keinen
Sromkreis in der Ansteuerung. Du hast bei Dir 2 Sromkreise,
einmal 6V......Motor......GND,
einmal 5V.....Servoelecktronik....GND. Damit diese
Kreise gesclssen sind müssen beide GND verbunden sein,
sonst kann kein Steuerstrom ließen und es tut sich NIX.
Du brauchst ein gemeinsames Potential.
Gruß Richard
-
Hallo Richard!
Ich stell mich sicher sehr blöd an, aber ich bin ein absoluter Newbie...
Deshalb frage ich jetzt nochmal bevor ich was kaputt mache:
Beim Servo schließe ich einen Batteriehalter mit 6V bei Plus und Minus des Servos an (Servo macht einen Ruckler...)
Beim Mikrocontroller schließe ich plus bei Pin8 und minus bei Pin4 vom Netzgerät mit 5V an. Dann verbinde ich das orangene Kabel des Servos mit Pin5 des Mcontroller.
Und jetzt verbinde ich noch Pin4 (gnd Microc.) mit dem Minuspol des Servos??
lg
Wolfgang
-
-
Hm, geht noch immer nicht... Bei der Zeitsteuerung hab ich wieder 2000ms genommen... der Mikrocontroller hält sich ja an die Zeit, oder?? Hier nochmal der Code
Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 22
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Portb.0 = Output
Enable Interrupts
Do
Servo(1) = 50
Waitms 2000
Servo(1) = 150
Waitms 4000
Loop