PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer & LCD anspruchsvoll bitte lesen



Larzarus
30.12.2007, 14:12
Hallo,
hier im nachfolgenden Programm wird eine Zeit eingestellt die rückwärts läuft.

Bei null wird in eine Subroutine gesprungen und dort soll später ein servo angesteuert werden.
Danach wird die Uhr wieder von vorne laufen gelassen.
Und das im Loop.

Das problem ist nur wenn die Uhr ca. 5-10 mal durchgelaufen ist erscheinen auf dem LCD, komische zeichen.

00:00:01

M00:00:0013 so in der art

Dann dauert es noch 3-5 durchläufe und der Controller macht einen Reset.
Leider weiß ich nicht weiter und finde den Fehler nicht.

MFG

$regfile = "m8def.dat" 'Controller : ATMEGA8 (Atmel)
$crystal = 7372800 '@ 7.2738 MHz

Setclock Alias Pinb.1 'Button 1
H Alias Pinb.2 'Button 2
M Alias Pinb.3 'Button 3
S Alias Pinb.4 'Button 4

Config Lcd = 16 * 2 '20 x 4 (Spalten x Zeilen)
'Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.0 , Db7 = Portb.4 , Db6 = Portb.3 , Db5 = Portb.2 , Db4 = Portb.1
Config Lcdpin = Pin , E = Portb.0 , Rs = Portb.1 , Db7 = Portb.5 , Db6 = Portb.4 , Db5 = Portb.3 , Db4 = Portb.2 'Belegung am MEGA8
Config Lcdbus = 4 '4-Bit Bus
Config Lcdmode = Port '4-Bit Bus
Config Portb = Output 'Portb in Ausgabe Modus (Display)

Cls 'RAM des Displays selektieren

Portb = 63 'Pullups von Portb anschalten

Config Timer1 = Timer , Prescale = 1 'Timer1 konfigurieren

On Timer1 Timer1_isr 'Bei Überlauf in ISR springen

Enable Interrupts 'Timer1 ist ein Interrupt also Interrupts einschalten

Const Inter1 = 500 '1.Intervall für hochzählen
Const Inter2 = 250 '2.Intervall für hochzählen
Const Hi = 4 'Konstante zum Einstellen der Umschaltzeit des Intervalls
Const Mi = 9 'Konstante zum Einstellen der Umschaltzeit des Intervalls
Const Si = 9 'Konstante zum Einstellen der Umschaltzeit des Intervalls

Dim Intervall As Word 'Intervallzeit für hochzählen
Dim Mseconds As Word 'Millisekunden

Dim Seconds As Byte 'Sekunden
Dim Seconds1 As Byte
Dim Minutes As Byte
Dim Minutes1 As Byte 'Minuten
Dim Hours As Byte
Dim Hours1 As Byte 'Stunden
Dim Temp As Byte 'Zusätzliche Variable für das Umschalten des Intervalls

Dim Flag1 As Boolean 'Flag für den Spezialfall sek=9..0 (s.u.)
Dim Setbutton As Boolean '1.Button
Dim Hb As Boolean '2.Button
Dim Mb As Boolean '3.Button
Dim Sb As Boolean '4.Button

'+--------------+
'|Initialisieren|
'+--------------+

Do 'DO-Schleife (Anfang)
Locate 1 , 1 'Spalte 1 und Zeile 1 des Displays
Lcd "Bitte Einstellen!" 'Displayausgabe für den Benutzer
Waitms 50 '50 Millisekunden Warten um Flimmern zu vermeiden
Gosub Buttons 'zur Subroutine für die Buttonabfage springen
Cls 'Display löschen
Loop Until Setbutton = 1 'DO-Schleife (Ende wenn Button 1 gedrückt)

Lcd Hours ; ":" ; Minutes ; ":" ; Seconds 'Anzeige: 0:0:0

'+----------+
'|Einstellen|
'+----------+

Do

'+-------+
'|Stunden|
'+-------+

Gosub Buttons 'Buttonabfrage
Intervall = Inter1 'Erstes Intervall auswählen (lang)
While Hb = 1 And Setbutton = 1 'Wenn beide Buttons gedrückt, dann folgendes ausführen
Incr Hours 'Stunden erhöhen
Incr Temp 'Temporäres Byte erhöhen, wichtig für die Intervallumschaltung
If Temp > Hi Then Intervall = Inter2 'Intervallumschaltung
If Hours > 23 Then Hours = 0 'Nach 23 wieder auf 0 springen
Locate 1 , 1 'Display: 1.Spalte, 1.Zeile
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds 'Aktuelle eingestellte Zeit anzeigen
Waitms Intervall 'Das Intervall abwarten
Gosub Buttons 'Buttonabfrage
Wend 'Ende der Schleife

'+-------+
'|Minuten|
'+-------+

Gosub Buttons
Intervall = Inter1
While Mb = 1 And Setbutton = 1
Incr Minutes
If Minutes > Mi Then Intervall = Inter2
If Minutes > 59 Then Minutes = 0
Locate 1 , 1
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds
Waitms Intervall
Gosub Buttons
Wend

'+--------+
'|Sekunden|
'+--------+

Gosub Buttons
Intervall = Inter1
While Sb = 1 And Setbutton = 1
Incr Seconds
If Seconds > Si Then Intervall = Inter2
If Seconds > 59 Then Seconds = 0
Locate 1 , 1
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds
Waitms Intervall
Gosub Buttons
Wend
Gosub Buttons
Loop Until Setbutton = 0 'Ende der Schleife

'+------------+
'|Startabfrage|
'+------------+

Do
Locate 1 , 1 'Display: 1.Spalte, 1.Zeile
Lcd "Bitte starten!" 'Ausgabe für Benutzer
Waitms 50 'Flimmern vermeiden
Gosub Buttons 'Buttonabfrage
Loop Until Setbutton = 1 'Dies solange ausführen bis Startknopf gedrückt

Seconds1 = Seconds
Minutes1 = Minutes
Hours1 = Hours


'+-----+
'|Start|
'+-----+
Wiederholung:

Seconds = Seconds1
Minutes = Minutes1
Hours = Hours1

Cls 'Display: löschen

Enable Timer1 'Timer1 erst hier starten, da sonst die 1 Sekunde nicht richtig gezählt wird

Do

'+-------------+
'|Millisekunden|
'+-------------+

If Mseconds >= 1000 Then
Decr Seconds
Mseconds = 0
End If

'+-----------+
'|Spezialfall|
'+-----------+

If Seconds = 9 Then
If Flag1 = 0 Then
Cls
Flag1 = 1
End If
End If

'+--------+
'|Sekunden|
'+--------+

If Seconds = 255 Then
Decr Minutes
Seconds = 59
Flag1 = 0
End If

'+-------+
'|Minuten|
'+-------+

If Minutes = 255 Then
Decr Hours
Minutes = 59
End If

'+-------+
'|Stunden|
'+-------+

If Hours = 255 Then
Hours = 23
Minutes = 59
Seconds = 59
End If

'+--------------------------+
'|Anzeige der Aktuellen Zeit|
'| führende Nullen anzeigen |
'+--------------------------+

Locate 1 , 1
If Hours > 9 Then Lcd Hours
If Hours < 10 Then Lcd "0" ; Hours
Lcd ":"
If Minutes > 9 Then Lcd Minutes
If Minutes < 10 Then Lcd "0" ; Minutes
Lcd ":"
If Seconds > 9 Then Lcd Seconds
If Seconds < 10 Then Lcd "0" ; Seconds

If Hours = 0 And Minutes = 0 And Seconds = 0 Then Gosub Fertig 'Wenn Timervorgang beendet, dann in Subroutine springen

Loop

'+-----------+
'|Subroutinen|
'+-----------+

Timer1_isr: 'Interrupt Service Routine für den Timer1
Timer1 = 59000 'Reloadwert ~ 59000
Mseconds = Mseconds + 1 'Millisekunden erhöhen...
Return '...und zurückspringen

'+---------------------------------+
'|Subroutinen für die Buttonabfrage|
'+---------------------------------+

Setc1:
Setbutton = 1
Return

Hours1:
Hb = 1
Return

Minutes1:
Mb = 1
Return

Seconds1:
Sb = 1
Return
'-------------------------------------------------
Setc2:
Setbutton = 0
Return

Hours2:
Hb = 0
Return

Minutes2:
Mb = 0
Return

Seconds2:
Sb = 0
Return

'+-------------------------------------------------+
'|Buttonabfrage mit Software-Entprellung der Tasten|
'+-------------------------------------------------+

Buttons:
Config Portb = Input
Portb = 63
Debounce Setclock , 0 , Setc1 , Sub
Debounce H , 0 , Hours1 , Sub
Debounce M , 0 , Minutes1 , Sub
Debounce S , 0 , Seconds1 , Sub
'-----------------------------------------------
Debounce Setclock , 1 , Setc2 , Sub
Debounce H , 1 , Hours2 , Sub
Debounce M , 1 , Minutes2 , Sub
Debounce S , 1 , Seconds2 , Sub
Config Portb = Output
Return

'+-------------------------------------------------------------+
'|Subroutine wird ausgeführt, wenn der Timervorgang beendet ist|
'+-------------------------------------------------------------+

Fertig:
Cls
Goto Wiederholung

Return

digitali
30.12.2007, 17:44
Hallo,

ich sehe Du benutzt in Deinem Programm Gosub's. Hast aber keine $hwstack deklariert. Das kann auch nicht gut gehen. In der Bascom-Hilfe steht dazu:

------schnipp------
The Hardware stack is room in RAM that is needed by your program. When you use GOSUB label, the microprocessor pushes the return address on the hardware stack and will use 2 bytes for that. When you use RETURN, the HW stack is popped back and the program can continue at the proper address. When you nest GOSUB, CALL or functions, you will use more stack space. Most statements use HW stack because a machine language routine is called.


Mit freundlichen Gruessen
Digitali

Larzarus
30.12.2007, 18:07
es ist ein bisschen besser geworden habe das dazu gefügt:
$framesize = 32
$swstack = 32
$hwstack = 32



aber es stürtzt immer noch ab ...

edit:
scheint was mit der größe zun tun, zu haben.

$framesize = 256
$swstack = 256
$hwstack = 256

scheinbar läuft es nun.

Vielen Dank

Wie groß gehen sie denn maximal?

PicNick
30.12.2007, 18:44
Schau mal:
https://www.roboternetz.de/wissen/index.php/Bascom_Inside

Larzarus
30.12.2007, 19:34
Es geht nicht habe es jetzt schon so hoch
$framesize = 1024
$swstack = 1024
$hwstack = 1024

es kommen trotzdem noch komische zeichen auf dem LCD.
Woran liegt das ist der stack irgendwann voll? Muss ich einen Speicher ab und zu leeren oder so.

Larzarus
30.12.2007, 22:45
Jetzt ein weiteres Problem.:-(

So stelle ich die Servos ein,
1)
wieder erscheinen komische zeichen auf dem Display.
Es liegt auf jedenfall an dem hier.
Mache ich das weg sind auch die zeichen weg.

Config Servos = 1 , Servo1 = Portc.0 , Reload = 1
Config Portc = Output
Config Portc.1 = Output
Config Pinc.7 = Input
Portc.1 = 1
Portc.7 = 0


2)


Das ist die Subroutine in die wird gesprungen wenn der Timer abgelaufen ist.s.u.

Dort soll der Servo einmal auf mittelstellung für 1s und dann in vollrechts für 1s und wieder voll links bis zum nächsten Timerablauf wieder bei fertig: los geht.

Der Servo bewegt sich vorher schon während der Timer läuft nach ganz links und bleibt dort.
Der Timer läuft einmal ab und springt dann scheinbar in die Fertig:
kommt da aber nicht mehr raus Servo bleibt ganz links.
Hoffe ihr versteht mich.
Bin jetzt seit 12 Stunden da dran und bekomme das nicht hin... :-(


Fertig:
Disable Timer1
Display Off
Waitms 50
Display On
Cls
Locate 1 , 1
Lcd "Foto!!!"
Servo(1) = 25
Wait 1
Servo(1) = 50
Wait 1
Servo(1) = 5.5
Wait 1
Cls
Goto Wiederholung




'+-----------------------------------------------------------------------------------------------------+
'| alpha_counter.bas |
'|Autor : Martin Weinberg |
'|Controller : ATMEGA8 (Atmel) |
'+-----------------------------------------------------------------------------------------------------+
'|Genutzte Ressourcen : |
'| |
'|SRAM : 87.5 / 1024 Bytes (8.5 %) |
'|FlashROM : 2518 / 8096 Bytes (31.1 %) |
'|EEPROM : 0 / 512 (0 %) |
'|Portb : 6 / 6 (Display und Buttons) |
'|Portc : 0 / 6 |
'|Portd : 0 / 8 |
'+-----------------------------------------------------------------------------------------------------+
'|Zusätzliche Hardware : |
'| |
'|LCD: |
'| Optrex DMC20434 |
'| Spalten: 20 |
'| Zeilen: 4 |
'| Controller: HD44780A |
'| Hintergrundbeleuchtung: --- |
'| |
'|Controllerboard : Standard-Controllerboard für den ATMEGA8 (Alpha Electronic Berger GmBH, Bielefeld) |
'+-----------------------------------------------------------------------------------------------------+
'|Programmiert mit : Bascom @ 1833 MHz |
'+-----------------------------------------------------------------------------------------------------+
$regfile = "m8def.dat" 'Controller : ATMEGA8 (Atmel)
$crystal = 7372800 '@ 7.2738 MHz
$framesize = 2048
$swstack = 2048
$hwstack = 2048


Setclock Alias Pinb.1 'Button 1
H Alias Pinb.2 'Button 2
M Alias Pinb.3 'Button 3
S Alias Pinb.4 'Button 4

Config Lcd = 16 * 2 '20 x 4 (Spalten x Zeilen)
'Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.0 , Db7 = Portb.4 , Db6 = Portb.3 , Db5 = Portb.2 , Db4 = Portb.1
Config Lcdpin = Pin , E = Portb.0 , Rs = Portb.1 , Db7 = Portb.5 , Db6 = Portb.4 , Db5 = Portb.3 , Db4 = Portb.2 'Belegung am MEGA8
Config Lcdbus = 4 '4-Bit Bus
Config Lcdmode = Port '4-Bit Bus
Config Portb = Output 'Portb in Ausgabe Modus (Display)

Config Servos = 1 , Servo1 = Portc.0 , Reload = 1
Config Portc = Output
Config Portc.1 = Output
Config Pinc.7 = Input
Portc.1 = 1
Portc.7 = 0
Cls 'RAM des Displays selektieren

Portb = 63 'Pullups von Portb anschalten

Config Timer1 = Timer , Prescale = 256 'Timer1 konfigurieren

On Timer1 Timer1_isr 'Bei Überlauf in ISR springen



Const Inter1 = 500 '1.Intervall für hochzählen
Const Inter2 = 250 '2.Intervall für hochzählen
Const Hi = 4 'Konstante zum Einstellen der Umschaltzeit des Intervalls
Const Mi = 9 'Konstante zum Einstellen der Umschaltzeit des Intervalls
Const Si = 9 'Konstante zum Einstellen der Umschaltzeit des Intervalls

Dim Intervall As Word 'Intervallzeit für hochzählen
Dim Mseconds As Word 'Millisekunden

Dim Seconds As Byte 'Sekunden
Dim Seconds1 As Byte
Dim Minutes As Byte
Dim Minutes1 As Byte 'Minuten
Dim Hours As Byte
Dim Hours1 As Byte 'Stunden
Dim Tseconds As Byte
Dim Temp As Byte 'Zusätzliche Variable für das Umschalten des Intervalls

Dim Flag1 As Boolean 'Flag für den Spezialfall sek=9..0 (s.u.)
Dim Setbutton As Boolean '1.Button
Dim Hb As Boolean '2.Button
Dim Mb As Boolean '3.Button
Dim Sb As Boolean '4.Button



'+--------------+
'|Initialisieren|
'+--------------+

Do 'DO-Schleife (Anfang)
Locate 1 , 1 'Spalte 1 und Zeile 1 des Displays
Lcd "Bitte Einstellen!" 'Displayausgabe für den Benutzer
Waitms 50 '50 Millisekunden Warten um Flimmern zu vermeiden
Gosub Buttons 'zur Subroutine für die Buttonabfage springen
Cls 'Display löschen
Loop Until Setbutton = 1 'DO-Schleife (Ende wenn Button 1 gedrückt)

Lcd Hours ; ":" ; Minutes ; ":" ; Seconds 'Anzeige: 0:0:0

'+----------+
'|Einstellen|
'+----------+

Do

'+-------+
'|Stunden|
'+-------+

Gosub Buttons 'Buttonabfrage
Intervall = Inter1 'Erstes Intervall auswählen (lang)
While Hb = 1 And Setbutton = 1 'Wenn beide Buttons gedrückt, dann folgendes ausführen
Incr Hours 'Stunden erhöhen
Incr Temp 'Temporäres Byte erhöhen, wichtig für die Intervallumschaltung
If Temp > Hi Then Intervall = Inter2 'Intervallumschaltung
If Hours > 23 Then Hours = 0 'Nach 23 wieder auf 0 springen
Locate 1 , 1 'Display: 1.Spalte, 1.Zeile
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds 'Aktuelle eingestellte Zeit anzeigen
Waitms Intervall 'Das Intervall abwarten
Gosub Buttons 'Buttonabfrage
Wend 'Ende der Schleife

'+-------+
'|Minuten|
'+-------+

Gosub Buttons
Intervall = Inter1
While Mb = 1 And Setbutton = 1
Incr Minutes
If Minutes > Mi Then Intervall = Inter2
If Minutes > 59 Then Minutes = 0
Locate 1 , 1
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds
Waitms Intervall
Gosub Buttons
Wend

'+--------+
'|Sekunden|
'+--------+

Gosub Buttons
Intervall = Inter1
While Sb = 1 And Setbutton = 1
Incr Seconds
If Seconds > Si Then Intervall = Inter2
If Seconds > 59 Then Seconds = 0
Locate 1 , 1
Lcd Hours ; ":" ; Minutes ; ":" ; Seconds
Waitms Intervall
Gosub Buttons
Wend
Gosub Buttons
Loop Until Setbutton = 0 'Ende der Schleife

'+------------+
'|Startabfrage|
'+------------+

Do
Locate 1 , 1 'Display: 1.Spalte, 1.Zeile
Lcd "Bitte starten!" 'Ausgabe für Benutzer
Waitms 50 'Flimmern vermeiden
Gosub Buttons 'Buttonabfrage
Loop Until Setbutton = 1 'Dies solange ausführen bis Startknopf gedrückt

Seconds1 = Seconds
Minutes1 = Minutes
Hours1 = Hours


'+-----+
'|Start|
'+-----+
Wiederholung:

Seconds = Seconds1
Minutes = Minutes1
Hours = Hours1



Cls
Enable Timer1
Timer1 = 36736 'Timer1 erst hier starten, da sonst die 1 Sekunde nicht richtig gezählt wird
Enable Interrupts
Do



'+-------------+
'|Millisekunden|
'+-------------+

If Tseconds >= 1 Then
Decr Seconds
Tseconds = 0
End If

'+-----------+
'|Spezialfall|
'+-----------+

If Seconds = 9 Then
If Flag1 = 0 Then
Cls
Flag1 = 1
End If
End If

'+--------+
'|Sekunden|
'+--------+

If Seconds = 255 Then
Decr Minutes
Seconds = 59
Flag1 = 0
End If

'+-------+
'|Minuten|
'+-------+

If Minutes = 255 Then
Decr Hours
Minutes = 59
End If

'+-------+
'|Stunden|
'+-------+

If Hours = 255 Then
Hours = 23
Minutes = 59
Seconds = 59
End If

'+--------------------------+
'|Anzeige der Aktuellen Zeit|
'| führende Nullen anzeigen |
'+--------------------------+

Locate 1 , 1
If Hours > 9 Then Lcd Hours
If Hours < 10 Then Lcd "0" ; Hours
Lcd ":"
If Minutes > 9 Then Lcd Minutes
If Minutes < 10 Then Lcd "0" ; Minutes
Lcd ":"
If Seconds > 9 Then Lcd Seconds
If Seconds < 10 Then Lcd "0" ; Seconds



If Hours = 0 And Minutes = 0 And Seconds = 0 Then Gosub Fertig 'Wenn Timervorgang beendet, dann in Subroutine springen

Loop

'+-----------+
'|Subroutinen|
'+-----------+

Timer1_isr:
'Interrupt Service Routine für den Timer1
Timer1 = 36736 'Reloadwert ~ 59000
Tseconds = Tseconds + 1 'Millisekunden erhöhen...
Return '...und zurückspringen

'+---------------------------------+
'|Subroutinen für die Buttonabfrage|
'+---------------------------------+

Setc1:
Setbutton = 1
Return

Hours1:
Hb = 1
Return

Minutes1:
Mb = 1
Return

Seconds1:
Sb = 1
Return
'-------------------------------------------------
Setc2:
Setbutton = 0
Return

Hours2:
Hb = 0
Return

Minutes2:
Mb = 0
Return

Seconds2:
Sb = 0
Return

'+-------------------------------------------------+
'|Buttonabfrage mit Software-Entprellung der Tasten|
'+-------------------------------------------------+

Buttons:
Config Portb = Input
Portb = 63
Debounce Setclock , 0 , Setc1 , Sub
Debounce H , 0 , Hours1 , Sub
Debounce M , 0 , Minutes1 , Sub
Debounce S , 0 , Seconds1 , Sub
'-----------------------------------------------
Debounce Setclock , 1 , Setc2 , Sub
Debounce H , 1 , Hours2 , Sub
Debounce M , 1 , Minutes2 , Sub
Debounce S , 1 , Seconds2 , Sub
Config Portb = Output
Return

'+-------------------------------------------------------------+
'|Subroutine wird ausgeführt, wenn der Timervorgang beendet ist|
'+-------------------------------------------------------------+

Fertig:
Disable Timer1
Display Off
Waitms 50
Display On
Cls
Locate 1 , 1
Lcd "Foto!!!"
Servo(1) = 25
Wait 2
Servo(1) = 50
Wait 2
Servo(1) = 5.5
Wait 2

Cls
Goto Wiederholung



Return

linux_80
31.12.2007, 01:38
Hallo,

ein bischen nachlesen wirst Du schon müssen, zB den Link vom PicNick.

Der Mega8 hat nur 1024 Byte Speicher, und da müssen die ganzen Variablen und die Stacks reinpassen, also zusammen max. 1024 !

Da Du keine Subs oder Functions benutzt, sind die Werte für $framesize und $swstack nicht so wichtig.
Da du ISRs verwendest, stelle $hwstack auf 64 das sollte genug sein.

Wieviel Platz die Variablen brauchen, sieht man im Report, der nach dem compilieren erstellt wird.
Menu: Program -> Show result !

Larzarus
31.12.2007, 12:56
SO jetzt habe ich den Stack auf 64 die zeichen sind verschwunden,danke.


Jetzt habe ich immer noch das hier ..
Sobald der Servo Konfiguriert wird läuft das irgendwie nicht mehr richtig.

Config Servos = 1 , Servo1 = Portc.0 , Reload = 1

Config Portc = Output
!!!!!!!!!!!!!liegt bestimmt hier dran!!!! Wenn ich das so mache
Config Portc.0 = Output bewegt sich nichts mehr

Config Portc.1 = Output
Config Pinc.7 = Input
Portc.1 = 1
Portc.7 = 0


Es bleibt total lange in dieser Sub
ohne das dort was vom Servo erwähnt wird woran liegt das?
Nutzen Servo(1) und der Timer irgendwas gemeinsam.

Fertig:
Disable Timer1
Display Off
Waitms 50
Display On
Cls
Locate 1 , 1
Lcd "Foto!!!"
Wait 1
Cls
Goto Wiederholung

Der servo fängt an sich nach gaz links zu drehen sobald Enable Interrupts kommt und bleibt dort.

Larzarus
31.12.2007, 12:58
$regfile = "m8def.dat" 'Controller : ATMEGA8 (Atmel)
$crystal = 7372800 '@ 7.2738 MHz
$framesize = 64
$swstack = 64
$hwstack = 64

Config Servos = 1 , Servo1 = Portc.0 , Reload = 1
Config Portc = Output
Enable Interrupts
Config Portc.1 = Output
Config Pinc.7 = Input
Portc.1 = 1
Portc.7 = 0
Do
Servo(1) = 5.5
Wait 3
Servo(1) = 40
Wait 3
Loop
End

Das gleiche verhalten des Servo auch hier :-(

Larzarus
01.01.2008, 13:33
kann mir niemand helfen?

linux_80
01.01.2008, 14:43
Um es mal so zu sagen, Nein, denn das lesen der Bascom-Hilfe wird Dir keiner abhnehmen können !

Wenn Du eine konkrete Frage hast, schauen wir weiter.

Michael
01.01.2008, 15:03
Hallo Lazarus,


kann mir niemand helfen?
Der Reload-Wert sollte bei 10 liegen.
Reload Wert und Servo-Variable, miteinander multipliziert, geben die Pulszeit in Mikrosekunden aus. Hast du das beachtet?



Gruß, Michael