Beste allemaal,
Ik ben wat aan het klooien gegaan met zend en ontvangmodukes van niels. Maar ik krijg de data heel vaak niet door. Heeft iemand een idee hoe ik foutcorrectie in picbasic kan doen? De data wordt nu met 1200 baud verstuurt. De afstand is ongeveer 10 cm. Het bleek veel te schelen als ik voorafgaand aan de data een puls van 4ms stuur en dan 4ms wacht.
huidige status:
Code:
zender
pic basic code:
Device 16F648A ;We gebruiken een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
Dim teller As Byte
TRISA = 0
main:
For teller = 0 To 100
PORTA.1 = 1
DelayMS 4
PORTA.1 = 0
DelayMS 4
SerOut PORTA.1,17197, ["Abc", teller]
Toggle PORTA.3
teller = teller + 1
DelayMS 500
Next teller
GoTo main
End
ontvanger:
pic basic code:
Device 16F648A ;We gebruiken een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
TRISA = 0
Dim inbyte As Byte
main:
SerIn PORTA.1,17197,[Wait ("Abc"),inbyte]
Toggle PORTA.3
'stuur het door naar computer
'zo kan je kijken wat er precies word verzonden
SerOut PORTA.2,84, [Dec inbyte]
GoTo main
Ik krijg nu in een serie van 0 tot 100 dit binnen"
code:
612242830324042444860646668708486889094
Dus in 20% van de gevallen komt de data over.
Boven is in, onder is uit. Hier lijkt het dus goed te gaan, kan helaas niet goed nagaan of dit een juiste of een foutieve overdracht betrof.
Wie heeft er een idee/programma om in picbasic iets met foutcorrectie te doen.