Danke für die kleine Hilfe,
Habe dann mal los programmiert.
Dieses Programm kam dann raus.
Code:
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686000 'Quarz: 3,6864 MHz
$baud = 9600 'Baudrate der UART: 9600 Baud
On Timer1 Ontimer1
Config Timer1 = Timer , Prescale = 64 'Timertakt = Crystal / 64
Enable Timer1 'Timer1 einschalten
Enable Interrupts 'Interrupts Global einschalten
Const Timervorgabe = 36736
Ddrd = &B10011111 'Pin PD6 Ausgang, Rest Eingang
Portd = &B01100000 'PullUp von Pin PD 0,1,2,3,4 aktivieren
Dim Zler As Byte
Dim P5 As Byte
Dim I As Byte
Declare Sub Port5
Declare Sub Summer
I = 1
'----------------------------------------------------------
'###Hauptschleife###
'----------------------------------------------------------
Main:
'----------------------------------------------------------
Do
Debounce Pind.6 , 0 , Port5 'Entprellt
Loop
'----------------------------------------------------------
'----------------------------------------------------------
' ###### Port 5 ###########
'----------------------------------------------------------
Port5:
Zler = 1
For I = 1 To 10 ' Durchgang 10 mal
' Sollte dann Timer auf 10
Print Pind.5 ; " " ; Zler
P5 = Pind.5
If P5 = 0 Then
Portd.7 = 0 ' Summer an Port7 aus
Else
Portd.7 = 1
End If ' Summer an Port7 ein
Waitms 100
Next I
Goto Ende
'-----------------------------------------------------------
'####### Summer ##############
'-----------------------------------------------------------
Summer:
If P5 = 0 Then
Portd.7 = 0
Else
Portd.7 = 1
End If
Return
'------------------------------------------------------------
'------------------------------------------------------------
'#### Ende #####
'------------------------------------------------------------
Ende:
Print " "
Print " "
Print " Ende "
Print "<--->";
Print " "
Print " "
Goto Main
Return
'-----------------------------------------------------------------------
'####### Timer ############
'----------------------------------------------------------------------
'###OnTimer1###
Ontimer1:
Timer1 = Timervorgabe
Incr Zler
Return
End
Es funktioniert noch nicht so wie ich es will.
Mit der Funktion Print Pind.5 erscheint immer eine 1 ich hätte gerne eine 0.
Die For Next Schleife ist nur drin dass ich es besser kontrolieren kann.
Der Timer ist auch nicht richtig eingestellt.
Sollte jede Sekunde überlaufen.
Nach dem drücken des Pind.6 soll das Programm 10 Sekunden laufen.
Also den Pind.5 alle 50 ms abfragen.
Hat jemand noch eine Idee wie ich das Programm verändern könnte ?
mfg
Enterprise
Lesezeichen