I have an electronic circuit with 3 pushbuttons and a display.
I would replace the pushbuttons for an Rotary encoder.
My problem is that the ports B.0 and B.1 are already in use and I can't change the pcb
below a part of the program.
Code:
Device = 16F628A
Config XT_OSC , WDT_OFF, PWRTE_ON, LVP_OFF, BODEN_OFF, MCLRE_OFF
All_Digital TRUE ;Alle ingangen digitaal
Xtal 4
'---------------------------LCD--------------------------------
Declare LCD_DTPin = PORTB.0
Declare LCD_RSPin = PORTB.4
Declare LCD_ENPin = PORTA.3
Declare LCD_Interface = 4 '4-bit Interface
Declare LCD_Lines = 2
Declare LCD_Type = ALPHA
Symbol SDA = PORTA.1 'I2C op poort a1
Symbol SCL = PORTA.0 'I2C op poort a0
Symbol LED = PORTA.2 'ledverl. op poort a2
Symbol ToetsHoger = PORTB.7
Symbol ToetsLager = PORTB.5
Symbol ToetsSet = PORTB.6
Dim FREQ_step As Word 'Frequency step
Dim FREQ_khz As Word 'Frequency Khz
Dim FREQ_mhz As Word 'Frequency Mhz
Dim FREQ As Word
Dim TSA_Uitlezen As Word
Dim ADRESS As Byte 'TSA5511 i2c adres
Dim LO As FREQ.LowByte
Dim HI As FREQ.HighByte
EData 2160,2160,2160
PORTA = %00000000 ;PORTA uitgangen bij opstart een laag niveau
TRISA = %11111011 ;PORTA.2 is een uitgang voor de LED
PORTB = %00000000 ;PORTB uitgangen bij opstart een laag niveau
TRISB = %11111111 ;PORTB. is een uitgang voor de LED
Cls
lus:
High LED
Print At 1,1, "FM Test"
Print At 2,1, "W 7 testset"
DelayMS 1000
ADRESS = $C2 'TSA5511 in adres
FREQ_step = ERead 02 'geheugen lezen voor frequentie in EData
If FREQ_step > 0 Then TSA
'-----------------------------------------------------
Freq_set:
FREQ = FREQ_step
I2COut SDA,SCL,ADRESS,[HI,LO,$8F,$10] '$8F varicap drive uit
FREQ_khz = (FREQ_step*10/2)//100
FREQ_mhz = (FREQ_step*10/2)/100
Print At 1,1, "Set FM"
Print At 2,1, Dec FREQ_mhz, ",", Dec FREQ_khz
DelayMS 200
If ToetsHoger = 1 Then Freq_up
If ToetsLager = 1 Then Freq_down
If ToetsSet = 1 Then Freq_save
GoTo Freq_set
'-----------------------------------------UP_freq----------------------------
Freq_up:
FREQ_step = FREQ_step + 1 'step 5
If FREQ_step > 2160 Then FREQ_step = 1750
GoTo Freq_set
'----------------------------------------DOWN_freq--------------------------
Freq_down:
FREQ_step = FREQ_step - 1 'step 5
If FREQ_step < 1750 Then FREQ_step = 2160
GoTo Freq_set
'--------------------------data opslaan---------------------------
Freq_save:
EWrite 02, [FREQ_step]
DelayMS 50
How can I change this ,so I can Use an Rotary encoder.