From f7dddf06297f415413760f3bedf00f7297e60cf7 Mon Sep 17 00:00:00 2001 From: RossTheRoss Date: Wed, 8 Apr 2020 11:17:47 -0500 Subject: Forget to add a bunch of things oops --- Lab 2.X/Lab2A.s | 123 -------------------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 Lab 2.X/Lab2A.s (limited to 'Lab 2.X/Lab2A.s') diff --git a/Lab 2.X/Lab2A.s b/Lab 2.X/Lab2A.s deleted file mode 100644 index fa35d55..0000000 --- a/Lab 2.X/Lab2A.s +++ /dev/null @@ -1,123 +0,0 @@ - -.include "xc.inc" ; required "boiler-plate" (BP) - -;the next two lines set up the actual chip for operation - required -config __CONFIG2, POSCMOD_EC & I2C1SEL_SEC & IOL1WAY_OFF & OSCIOFNC_ON & FCKSM_CSECME & FNOSC_FRCPLL & SOSCSEL_LPSOSC & WUTSEL_FST & IESO_OFF -config __CONFIG1, WDTPS_PS1 & FWPSA_PR32 & WINDIS_OFF & FWDTEN_OFF & BKBUG_ON & GWRP_ON & GCP_ON & JTAGEN_OFF - - .bss ; put the following labels in RAM -counter: - .space 2 ; a variable that takes two bytes (we won?t use - ; it for now, but put here to make this a generic - ; template to be used later). -stack: - .space 32 ; this will be our stack area, needed for func calls - -.text ; BP (put the following data in ROM(program memory)) - -;because we are using the C compiler to assemble our code, we need a "_main" label -;somewhere. (There's a link step that looks for it.) -.global _main ;BP -;your functions go here - -_main: - - bclr CLKDIV,#8 ;BP - nop - ;; --- Begin your main program below here --- - - - mov #0x9fff,w0 - mov w0,AD1PCFG ; Set all pins to digital mode - mov #0b1111111111111110,w0 - mov w0,TRISA ; set pin RA0 to output - mov #0x0000,w0 - mov w0,LATA ; set pin RA0 low - call delay_100us - call setColor - call foreverLoop - -wait_24cycles: - ; 2 cycles for function call - repeat #17 ; 1 cycle to load and prep - nop ; 17+1 cycles to execute NOP 18 times - return ; 3 cycles for the return - -wait_32cycles: ; 2 - repeat #24 ; 1 - nop ; 25+1 cycles = 26 - return ; 3 - -delay_100us: - repeat #1593 - nop - return - -delay_1ms: - repeat #15993 - nop - return - -write_bit_stream: - call wait_24cycles ; 24 cycles - clr LATA ; set pin RA0 low = 1 cycle - call wait_32cycles ; 32 cycles - inc LATA ; set pin RA0 high = 1 cycle - return - -write_0: ;2 cycles for function call - inc LATA ;1 - repeat #3 ;1 for load - nop ;3+1=4 nop - clr LATA ;1 - repeat #6 ;1 for load - nop ;1+6=7 nop - return ;3 return - - -write_1: ;2 cycle call - inc LATA ;1 - repeat #10;1 load - nop ;1+10=11 nop - clr LATA ;1 - nop ;1 - return ;3 return - -setColor: - ;Set R - call write_1 - call write_1 - call write_1 - call write_1 - call write_1 - call write_1 - call write_1 - call write_1 - ;Set G - call write_1 - call write_0 - call write_0 - call write_1 - call write_1 - call write_0 - call write_1 - call write_1 - ;Set B - call write_0 - call write_0 - call write_0 - call write_0 - call write_0 - call write_0 - call write_0 - call write_0 - - return - -foreverLoop: -; call write_bit_stream - nop - bra foreverLoop - - -.end -- cgit v1.2.3