PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [gelöst] Code per Tastendruck senden



graffiti
30.07.2009, 15:28
Hi Leute

habe da ein kleines Problem,

mit einem Taster möchte ich über die RS232 einen Code versenden,
aber bei der Ansicht im Terminalprogramm wird an den gesendeten Code noch zig mal eine 0 mit ausgegeben

wie kann ich das verhindern
und der Code soll bei Tastendruck auch nur einmal gesendet werden.

danke schon mal und Gruß Gerhard



$regfile = "attiny2313.dat"
$crystal = 4000000
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1

$hwstack = 32
$swstack = 10
$framesize = 40

Ddrd = &B01110010
Ddrb = &B11111100

Portd = 0
Portb = 0


Do

Debounce Pinb.0 , 1 , Step100 , Sub
Debounce Pinb.1 , 1 , Step200 , Sub


Loop

Step100:
If Pinb.0 = 1 Then
Printbin 100 ; 100 ; 100
End If
Waitms 1
Return
End

Step200:
If Pinb.1 = 1 Then
Printbin 100 ; 110 ; 110
End If
Waitms 1
Return
End


EDIT: noch ein Phänomen

ich habe am PD0 noch einen Taster hängen, der aber im Prog. nicht deklariert ist,
wird dieser gedrückt, kommen auch lauter nullen über die RS232 ??? :shock:

peterfido
30.07.2009, 21:14
Ich hätte es so gemacht, da ich mit dem Debounce Befehl auf Kriegsfuß stehe... Ich entprelle Hardwareseitig...



$regfile = "attiny2313.dat"
$crystal = 4000000
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1

$hwstack = 32
$swstack = 10
$framesize = 40

Ddrd = &B01110010
Ddrb = &B11111100
Dim Vari As Byte

Tast1alt Alias Vari.0
Tast2alt Alias Vari.1
Tast1 Alias Pinb.0
Tast2 Alias Pinb.1

Portd = 0
Portb = 0


Do

If Tast1 = 1 Then
If Tast1alt = 0 Then
Set Tast1alt
Gosub Step 100
End If
Else
Reset Tast1alt
End If

If Tast2 = 1 Then
If Tast2alt = 0 Then
Set Tast2alt
Gosub Step 100
End If
Else
Reset Tast2alt
End If


Loop
End

Step100:
Printbin 100 ; 100 ; 100
Waitms 1
Return

Step200:
Printbin 100 ; 110 ; 110
Waitms 1
Return



Die 2 StoppBits und die Polarität sind korrekt?

graffiti
30.07.2009, 22:29
Joop

Stopbits stimmen, da brauche ich 2 für die Software
Polarität ? da meinst du die Taster auf Plus, stimmt auch da ich schon ne forgefertigte Platine habe

hast du evtl. ne Erklärung, wo die vielen Nullen herkommen,
im Terminalprogi siehts so aus:

100 100 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

aber immer unterschiedliche Anzahl von Nullen,

oder hab ich im Atmel einen Meister Nullinger sitzen, der mir ein Register rausklopft O:) O:) O:)

graffiti
31.07.2009, 12:03
Ihr dürft mich jetzt steinigen

das Problem lag das der plus Pin vom Atmel nicht richtig gelötet war ...

der obere Code von mir funktioniert 1a, auch mit debounce

:Haue :Haue :Haue :Haue :Haue :Haue :Haue