
Originally Posted by
mackrackit
Re-read post 4 and 9 ???
Hi, I have arranged my hardware accordingly to use USART, trying to understand and blink an LED first.
My Rx code is :
Code:
DEFINE OSC 4
Include "modedefs.bas"
INCLUDE "DT_INTS-14.bas" ; Base Interrupt System
INCLUDE "ReEnterPBP.bas" ; Include if using PBP interrupts
@ __Config _XT_OSC & _WDT_ON & _PWRTE_ON & _BODEN_ON & _LVP_OFF & _CP_ALL & _CPD_ON
Pause 50
'-------variables declared-------------------------------------
code1 var byte
code2 var byte
a var bit
b var bit
c var bit
d var bit
e var bit
f var bit
g var bit
h var bit
a=0 : b=0 : c=0 : d=0 : e=0 : f=0 : g=0 : h=0
'-------------------------FUSES SET----------------------------
PAUSE 50
ADCON1=7
CMCON=7
CCP1CON=0
OPTION_REG=%10000000
TRISA=0 : PORTA=0
TRISE=0 : PORTE=0
TRISB=0 : PORTB=0
TRISC=%10000000 : PORTC=0
TRISD=0 : PORTD=0
@ ERRORLEVEL -306
;-----------HSERIN & OUT------------------
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12 ' 4800 Baud @ 0.17%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
RCSTA = $90 ' Enable serial port & continuous receive
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 12 ' 4800 Baud @ 0.17%
'------INTERRUPT DECLARED--------------------------------------------------------------
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1_INT, _ToggleFast, PBP, yes
INT_Handler RX_INT, _RX, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
T1CON=%00110001
@ INT_ENABLE TMR1_INT
@ INT_ENABLE RX_INT
;------MAIN PROGRAM START-----------
start:
HIGH PORTB.7
PAUSE 50
LOW PORTB.7
PAUSE 100
Goto start
'---[INT - interrupt handler]---------------------------------
ToggleFast:
Toggle PortB.6
@ INT_RETURN
RX:
TOGGLE PortB.5
HSERIN 100,close,[WAIT("MT3"),code1,code2]
close:
@ INT_RETURN
'---------end--------------------
Nothing is comming from Tx currently because I wanted to see first if both interrupts are working fine.
This is what happens:
LEDs are connected to PortB.7,6 & 5. When power is applied, PortB.7 blinks, PortB.6 blinks but when PortB.5 blinks, normally PIC hangs for few seconds and then normal erratic behaviour happens because of the interrupts, then again PIC hangs for few seconds.
My TX module connected to PIN25 is also getting very hot, even though I am not using it in the above code. Is this overall behaviour normal, I am using this feature for the first time, am I doing it right?
Bookmarks