OK, any ideas on this one? This is my code:
:Code:;----[16F1826 Hardware Configuration]------------------------------------------- #IF __PROCESSOR__ = "16F1826" #DEFINE MCU_FOUND 1 #CONFIG cfg1 = _FOSC_HS ; HS Oscillator, High-speed crystal/resonator connected between OSC1 and OSC2 pins cfg1&= _WDTE_OFF ; WDT disabled cfg1&= _PWRTE_OFF ; PWRT disabled cfg1&= _MCLRE_OFF ; MCLR/VPP pin function is digital input cfg1&= _CP_OFF ; Program memory code protection is disabled cfg1&= _CPD_OFF ; Data memory code protection is disabled cfg1&= _BOREN_OFF ; Brown-out Reset disabled cfg1&= _CLKOUTEN_OFF ; CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin cfg1&= _IESO_OFF ; Internal/External Switchover mode is disabled cfg1&= _FCMEN_OFF ; Fail-Safe Clock Monitor is disabled __CONFIG _CONFIG1, cfg1 cfg2 = _WRT_OFF ; Write protection off cfg2&= _PLLEN_OFF ; 4x PLL disabled cfg2&= _STVREN_OFF ; Stack Overflow or Underflow will not cause a Reset cfg2&= _BORV_HI ; Brown-out Reset Voltage (Vbor), high trip point selected. cfg2&= _LVP_OFF ; High-voltage on MCLR/VPP must be used for programming __CONFIG _CONFIG2, cfg2 #ENDCONFIG #ENDIF ;----[Verify Configs have been specified for Selected Processor]---------------- ; Note: Only include this routine once, after all #CONFIG blocks #IFNDEF MCU_FOUND #ERROR "No CONFIGs found for [" + __PROCESSOR__ +"]" #ENDIF DEFINE OSC 4 TRISA = %00000000 TRISB = %00000000 Low PORTA.1 Low PORTA.4 PORTA.1 = 1 pause 1000 PORTA.4 = 1 pause 1000 PORTA.4 = 0 PORTA.1 = 1 end
When I run the code, and LED attached to PORTA.1 goes ON as expected. However, when I code PORTA.4 = 1, then PORTA.1 goes low and the LED turns OFF!
After the second 'pause 100', then PORTA.1 = 1 does indeed turn the LED back ON.
Are these two ports interacting in some way that I am not aware of?
Help! :-)





Bookmarks