Hello.
I'm trying to use mr. Taylor's MIBAM and USART communication in a program but can't get anywhere. I guess I'm ruining something with content of some of the registers because approximately 2 seconds after sending data to the PIC it resets.
Please, someone give me a hand with this.
Code:'pbp250a... '16F887... DEFINE OSC 20 pause 20 ASM __CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_ON & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_ON & _HS_OSC __CONFIG _CONFIG2, _WRT_OFF & _BOR21V ENDASM RCSTA = $90 TXSTA = $24 SPBRG = 129 DEFINE HSER_CLROERR 1 RXbff var byte(32) cnt var byte n var byte tmp var byte OERR var RCSTA.1 CREN var RCSTA.4 RCIF var PIR1.5 RCIE var PIE1.5 'GIE var INTCON.7 'PEIE var INTCON.6 ANSEL = 0 ANSELH = 0 WPUB=0 OPTION_REG.7 = 1 porta = 0 portb = 0 portc = %11000000 portd = 7 porte = 0 trisa = %00010000 trisb = %00000000 trisc = %10000000 trisd = %00000000 trise = %00000000 pause 500 ;____[ Interrupt Context save locations ]___________________________________ wsave var byte $20 SYSTEM wsave1 var byte $A0 SYSTEM wsave2 var byte $120 SYSTEM wsave3 var byte $1A0 SYSTEM ssave var byte BANK0 SYSTEM psave var byte BANK0 SYSTEM ;___________________________________________________________________________ ;----[ MIBAM Setup ]-------------------------------------------------------- BAM_COUNT CON 3 ; How many BAM Pins are used? INCLUDE "MIBAM.pbp" ; Mirror Image BAM module Red var byte Green var byte Blue var byte ASM BAM_LIST macro ; Define PIN's to use for BAM BAM_PIN (PORTB,0, Red) ; and the associated Duty variables BAM_PIN (PORTB,1, Green) BAM_PIN (PORTB,2, Blue) endm BAM_INIT BAM_LIST ; Initialize the Pins ENDASM ;___________________________________________________________________________ Red = 170: Green = 255: Blue = 120 cnt = 0 'PEIE = 1 'GIE = 1 RCIE = 1 '***************** MAIN: '***************** if OERR then CREN=0 CREN=1 endif while RCIF RXbff[cnt] = RCREG cnt = cnt + 1 wend if RXbff[cnt-1] = "~" then for n = 0 to cnt-1 TXREG = RXbff[n] pause 3 ' hserout [RXbff[n], 32] next n TXREG = 13: TXREG = 10 pause 3 ' hserout [13, 10] cnt = 0 endif goto MAIN '*****************




Bookmarks