Ik heb de ingang van de rotary encoder verplaatst van PortB.0 & B1 naar PORTB.5 en PORTB.7 maar nu werk de rotary encoder niet meer.
iemand idee hoe dit op te lossen?
Device 16F628A
Config INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_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
Declare LCD_CommandUs = 2000
Declare LCD_DataUs = 50
On_Interrupt rotary
Symbol INTF = INTCON.1 ' RB0 External Interrupt Flag
Symbol INTE = INTCON.4 ' RB0 External Interrupt Enable
Symbol GIE = INTCON.7 ' Global Interrupt Enable
Symbol SDA = PORTA.1 'I2C op poort a1
Symbol SCL = PORTA.0 'I2C op poort a0
Symbol RotaryA = PORTB.5 'Rotary A
Symbol RotaryB = PORTB.7 'Rotary B
Symbol RotarySw = PORTA.4 'Rotary Encoder druk schakelaar.
Symbol PWM_Out = PORTB.6 'PWM power output
Symbol Cycles = 10 '(WORD) 'Cycles' van de PWM instructie
[Bericht gewijzigd door Henry S. op (0%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
RB0 is de interruptingang, op RB5 werkt dat natuurlijk niet.
Nieuwere processors kunnen IOC (interrupt on change) gebruiken op bijna elke pin. (de 628 is een vrij oud beestje wat nog niet zo veel kon...)
[Bericht gewijzigd door Arco op (18%)]
Heeft je rotary code een software-debounce om te voorkomen dat ie rare waarden gaat uitspugen? Sommige doen dit met condensators, maar dat is helemaal niet nodig.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
de 16F628 heeft int_on_change op PortB.4-PortB.7
bij het declareren van al de interuptsettings deze code meenemen
RBIE = 1 'RB Port Change Int Enable Bit staat aan
RBIF = 0 'reset van int on change flag