Also es gäbe noch eine Möglichkeit, nämlich den Servoimpuls händisch zu erzeugen und nicht die Bascom Befehle hierfür zu benutzen. Ich habe dies auch immer so gemacht über (Beispiel): For I=0 to 50 Pulseout PortB, 0, 500 Waitus 20000 Next Schau dir einfach mal den befehl Pulseout an. Natürlich müsstest du die Werte ausprobieren/anpassen. Aber Du hättest dann definitiv Kontrolle über den Portpin. Apropos - was mir noch einfällt, hast du mal den Servo-Pin nach dem Disable mal auf 0 gesetzt? Ich glaub zwar nicht das das was ändert - aber es ist so ein Gedanke das ich das mal probieren würde.
xenton
Offline
06.04.2013 13:52
Hi Sven, es sollte gehen, wenn Du nicht die Bascom-Routine benutzt sondern eine eigene. Im Internet findet sich bestimmt eine Vorlage dafür. Da kannst Du dann sicherlich nach Belieben aus und ein schalten was Du willst. Ich habe auch schon die Erfahrung gemacht, daß die komplexeren Bascom-eigenen Routinen manchmal nicht das gelbe vom Ei sind. In einfachen Fällen funktionieren die zwar gut aber sobald man ins Eingemachte geht hakts. In meinem konkreten Fall hat die GetRC5 Routine den Programmablauf so verlangsamt, daß von der Helligkeitssteuerung per PWM nur einzelene Blinker übrig geblieben sind. Gruß, Martin [EDIT]: Uups, da war wohl jemand schneller...
>>> Hilfe! Mein Ball ist umgefallen! <<<http://www.microtruckracing.de - http://mwww.mikro-rc.de
Der Tipp war klasse ! Vielen Dank ! So, ich habe es nun mit dem Puleout Befehl gemacht. Die passenden Werte habe ich gefunden. Wie kann ich denn nun den Puls ausschalten ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
'************************************************************************************************* '* * '* Servo Tiny Kieswerk * '* * '* Controller ist ein Tiny13 * '* * '************************************************************************************************* $regfile = "Attiny13.dat" ' Controller ist ein Tiny13 $crystal = 4800000 ' 4,8 Mhz Takt $hwstack = 10 $framesize = 10 $swstack = 20 Config Pinb.0 = Input ' Ein- / Ausgänge definieren Config Pinb.1 = Input Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output Taster_zu Alias Pinb.0 Taster_auf Alias Pinb.1 Gruen Alias Portb.3 Rot Alias Portb.4 Enable Interrupts Dim I As Byte Portb.0 = 1 ' Interne Pullups ein Portb.1 = 1 Portb.2 = 0 Portb.3 = 1 ' Werte von 40 - 75 = 90° Drehung For I = 0 To 50 Pulseout Portb , 2 , 800 Waitms 20 Next Taster_abfrage_zu: Do If Taster_auf = 0 Then Gosub Luke_zu Else Goto Taster_abfrage_auf End If Loop Taster_abfrage_auf: Do If Taster_zu = 0 Then Gosub Luke_auf Else Goto Taster_abfrage_zu End If Loop End Luke_zu: For I = 0 To 50 Pulseout Portb , 2 , 800 Waitms 20 Next ' Hier müsste wohl was hin ... Return Luke_auf: For I = 66 To 95 Pulseout Portb , 2 , 1400 Waitms 20 Next ' Hier müsste wohl was hin ... Return
zampes
Offline
06.04.2013 18:02
Hallo Sven, ich habe Dein Programm einmal mit einen Attiny25 und einem analog Servo getestet. Es funktioniert mit ein paar Änderungen an den Servowegwerten ohne Probleme. Wenn die Position angefahren wurde hören die Impulse auf.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
'************************************************************************************************* '* * '* Servo Tiny Kieswerk * '* * '* Controller ist ein Tiny13 * '* * '************************************************************************************************* $regfile = "Attiny25.dat" ' Controller ist ein Tiny13 $crystal = 8000000 ' 4,8 Mhz Takt $hwstack = 40 $swstack=16 $framesize=32 Config Pinb.0 = Input ' Ein- / Ausgänge definieren Config Pinb.1 = Input Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output Taster_zu Alias Pinb.0 Taster_auf Alias Pinb.1 Gruen Alias Portb.3 Rot Alias Portb.4 Enable Interrupts Dim I As Integer Portb.0 = 1 ' Interne Pullups ein Portb.1 = 1 Portb.2 = 0 Portb.3 = 1 Portb.4 = 1 ' Werte von 40 - 75 = 90° Drehung '----- Servo Mittelstellung ---- For I = 0 To 50 Pulseout Portb , 2 , 3300 ' Servo Mittelstellung Waitms 20 Next Taster_abfrage: Do If Taster_auf = 0 Then Gosub Luke_zu End If If Taster_zu = 0 Then Gosub Luke_auf End If Loop Luke_zu: Gruen = 0 Rot =1 For I = 0 To 50 Pulseout Portb , 2 , 2300 ' Servo rechts Waitms 20 Next Return Luke_auf: Gruen = 1 Rot = 0 For I = 0 To 50 Pulseout Portb , 2 , 4300 'Servo links Waitms 20 Next Return End
Gruß Dirk
Das ist echt interessant... Wenn ich einen Tiny13 nutze, und das Programm so aufspiele, habe ich trotzdem noch einen Servoimpuls da. Und zwar bei dem Unterprogramm "Luke zu" Gerade da, wo es nicht sein sollte. Das ist echt verflixt.
So, ich habe die For - To Schleifen jetzt nochmal rausgenommen. Da ändert sich bei mir garnichts ...
Fehler gefunden ... ich hatte statt Taster einen Schalter dran. Das brachte das Programm durcheinander.
Rund um das Forum
| | - Mikromodellbau Magazin
| | - Nettiquette
| | - Änderungen im Forum
| | - Vorstellungen der Mitglieder
| | - Testbereich
Einsteiger
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks für Einsteiger
Fahrzeuge in 1:87 - 1:220
| | - Bike, Trike, Quad
| | - Baumaschinen
| | - Lieferwagen
| | - PKWs
| | - PKW Rennwagen
| | - LKWs
| | - Race Trucks
| | - Einsatzfahrzeuge
| | - sonstige Fahrzeuge
| | - Modellbahnen
Schiffsmodelle
| | - Arbeitsschiffe
| | - Fähren
| | - Schlepper
| | - sonstige Schiffe
U - Boote
| | - Eigenbauten
| | - Umbauten
| | - Tipps & Tricks
| | - Probleme
Luftfahrt
| | - Flugzeuge
| | - Hubschrauber
| | - Luftschiffe
Module
| | - Trial Module
| | - Straßenmodule
| | - Ortsfeste Funktionsmodelle ( Kräne, Silo...
| | - Tipps & Tricks zum Modulbau
| | - Modellbahn
Zubehör
| | - Fernsteuerungen
| | - Ladegeräte
| | - Empfänger, Servos, Multiswitch
Car System
| | - Eigenbauten & Umbauten
| | - Infracar
| | - DC Car
| | - Probleme
Elektronik
| | - Bootloader System von Mikroantriebe
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks
| | - Deltang Empfänger DSM2 & DSMX
Mechanik
| | - Eigenbauten
| | - Probleme
| | - Maschinen, Werkzeuge und Zubehör
| | - Tipps & Tricks
Programmierung ( AVR, PIC ... )
| | - Harrys Modellbau Tinys
| | - Projekte
| | - Probleme
| | - Programme zum Download
| | - Bascom
| | - Bascom - Unser Einsteigerkurs
3D - Druck
| | - 3D Drucker
| | - Software zur Konstruktion, sowie zum Druck
| | - Projekte
| | - Kostenlose 3D Modelle zum Download
Ätzen
| | - Ätztechnik
| | - Platinen Ätzen
| | - Bleche Ätzen
| | - Vorlagen Downloads
| | - Probleme
Termine
| | - Ausstellungen
| | - Messen
| | - Treffen
| | - Online Stammtisch (Google Hangout)
Suche
| | - Modelle
| | - Zubehör
| | - Sonstiges
Biete
| | - Modelle und Bausätze
| | - Zubehör
| | - Sonstiges
Dies & Das
| | - Lackierungen
| | - Alles was nichts mit Mikromodellbau zu t...
| | - Euer Arbeitsbereich
Links
| | - Diverses
| | - Händler für Zubehör
| | - Private Homepages
Sprung
Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.
Spam Netikette Form
Sonstiges
Dieser Beitrag enthält unerwünschte Werbung.
Dieser Beitrag verstößt gegen die Netiquette des Forums.
Beiträge, die IN GROßBUCHSTABEN oder fett geschrieben sind bitte vermeiden.
{[userwarning_empty_error]}
Mitglied per PN benachrichtigen
Es wird der oben genannte Grund verwendet. Klicken Sie hier , um den Inhalt der privaten Nachricht anzupassen
Legen Sie hier den Inhalt der PN-Benachrichtigung fest.
Hinweis: Dieses Mitglied wurde bereits 4 Mal verwarnt. Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.