asm version 52 words
Code:#CONFIG __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _CP_OFF #ENDCONFIG DEFINE OSC 8 'LETS PBP KNOW WE WILL BE RUNNING AT 8MHZ 'PIN DEFENITIONS ' 'GP3 'GP4 USED FOR TRIGGER INPUT 'GP5 USED FOR LED 'SET UP THE REGISTERS OSCCON = %01110001 '8MHZ INTERNAL CLOCK USED CMCON0 = %00000111 'CIN PINS ARE I/O, COUT PIN IS I/O TRISIO = %00111010 ' GP2 OUTPUT THE REST ARE INPUTS ANSEL = 0 'NO ANALOG PORTS - ALL DIGITAL WPU = %00010000 'GP4 WEAK PULL UP ENABLED. ' DEFINE DEBUG_REG GPIO ' DEFINE DEBUG_BIT 2 ' DEFINE DEBUG_BAUD 9600 ' DEFINE DEBUG_MODE 0 '' LATB.7=1 'PBP software serial out 8N1 delay var byte bank0 ' set baud rate delay txbyte var byte bank0' byte to send bcount var byte bank0' counter serpin var gpio.0 ; set serial delay for 9600b main: txbyte = "H" GOSUB serialout txbyte = "E" GOSUB serialout txbyte = "L" GOSUB serialout txbyte = "L" GOSUB serialout txbyte = "O" GOSUB serialout txbyte = $20 ' space GOSUB serialout goto main serialout: asm movlw 8 movwf _bcount bcf GPIO ,0 call pausedelay sendbyte btfss _txbyte ,0 goto snd0 bsf GPIO ,0 goto sndd snd0 bcf GPIO ,0 sndd rrf _txbyte ,F call pausedelay decfsz _bcount ,F goto sendbyte bsf GPIO ,0 pausedelay movlw 67 movwf _delay zpausedelay decfsz _delay ,F goto zpausedelay return endasm


That’s getting worthwhile then. Using Pauseus in the first post would have added code to it.


Bookmarks