Wat zie over het hoofd.
In onderstaand programma wil ik de teller zowel serieel als op lcd display uitlezen.
Als alleen programma voor lcd display maak werkt dit perfect.
Ook serieel kan ik in hyperterminal teller zichtbaar maken.
Nadeel hiervan is dat alle getallen achter elkaar woorden gezet i.p.v. enkelgetal.(latere zorg)
Al ik programma's samen voegt gaat het mis.
Krijg teller niet meer zichtbaar in hyperterminal en display slaat op hol.
De teller komt uit een eerder project.
pic basic code:
Device 16F628A ;Gebruik een 16F628 type
Config WDT_OFF,_
PWRTE_ON,_
LVP_OFF,_
MCLRE_OFF,_
HS_OSC ; intern kristal uit geschakeld
Xtal 20 ; extern kristal van 20 MHz
All_Digital TRUE ; Alle ingangen digitaal
Declare LCD_ENPin = PORTA.1
Declare LCD_RSPin = PORTA.0
Declare Hserial_Baud 9600 ; set baudrate op 9600
Declare Hserial_RCSTA $90 ; << VUL DEZE WAAREN IN MET HET PROGRAMMA
Declare Hserial_TXSTA $24 ; << PIC multi CALC
Declare Hserial_Clear = On ; reset buffer bij een overflow?
Symbol telpuls = PORTB.3 ; potentiaal vrij contact
; variabelen instellen
Dim TELLER As Word
Dim TEL_BIT As Bit
; poort instellingen
; 76543210
PORTA = %00000000
TRISA = %00000000
PORTB = %00000000
TRISB = %00001000 ; telpuls
Clear ; wis ram geheugen
TELLER = 0 ; zet teller op waarde 0
Print At 2, 1, "teller"
Print At 2, 14, "punten"
RUN: ; hoofdprogramma
If telpuls = 1 Then
TEL_BIT = 1
GoSub TEL_OP
EndIf
GoTo RUN
TEL_OP:
If TEL_BIT = 1 Then
TELLER = TELLER + 1
HRSOut Dec TELLER ; stuur de waarde van teller serieel uit
Print At 2, 9, Dec3 TELLER
EndIf
TEL_BIT = 0
If TELLER > 255 Then
TELLER = TELLER - 1
EndIf
If telpuls = 0 Then
If TEL_BIT = 0 Then
Return
EndIf
EndIf
GoTo TEL_OP
End