diff options
Diffstat (limited to '')
-rw-r--r-- | Lab_2B.X/lab2b_asm.s | 38 | ||||
-rw-r--r-- | Lab_2B.X/lab2b_c.c | 33 |
2 files changed, 71 insertions, 0 deletions
diff --git a/Lab_2B.X/lab2b_asm.s b/Lab_2B.X/lab2b_asm.s new file mode 100644 index 0000000..ec29c69 --- /dev/null +++ b/Lab_2B.X/lab2b_asm.s @@ -0,0 +1,38 @@ +.include "xc.inc" + +.text ;BP (put the following data in ROM(program memory)) + +; This is a library, thus it can *not* contain a _main function: the C file will +; define main(). However, we +; we will need a .global statement to make available ASM functions to C code. +; All functions utilized outside of this file will need to have a leading +; underscore (_) and be included in a comment delimited list below. +.global _write_0, _write_1, _wait_100us, _wait_1ms + +_delay_100us: + repeat #1593 + nop + return + +_delay_1ms: + repeat #15993 + nop + 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
\ No newline at end of file diff --git a/Lab_2B.X/lab2b_c.c b/Lab_2B.X/lab2b_c.c new file mode 100644 index 0000000..063dfd9 --- /dev/null +++ b/Lab_2B.X/lab2b_c.c @@ -0,0 +1,33 @@ +#include "xc.h"
+// CW1: FLASH CONFIGURATION WORD 1 (see PIC24 Family Reference Manual 24.1)
+#pragma config ICS = PGx1 // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
+#pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled)
+#pragma config GWRP = OFF // General Code Segment Write Protect (Writes to program memory are allowed)
+#pragma config GCP = OFF // General Code Segment Code Protect (Code protection is disabled)
+#pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled)
+
+
+// CW2: FLASH CONFIGURATION WORD 2 (see PIC24 Family Reference Manual 24.1)
+#pragma config I2C1SEL = PRI // I2C1 Pin Location Select (Use default SCL1/SDA1 pins)
+#pragma config IOL1WAY = OFF // IOLOCK Protection (IOLOCK may be changed via unlocking seq)
+#pragma config OSCIOFNC = ON // Primary Oscillator I/O Function (CLKO/RC15 functions as I/O pin)
+#pragma config FCKSM = CSECME // Clock Switching and Monitor (Clock switching is enabled,
+ // Fail-Safe Clock Monitor is enabled)
+#pragma config FNOSC = FRCPLL // Oscillator Select (Fast RC Oscillator with PLL module (FRCPLL))
+
+
+void setup(void) {
+ CLKDIVbits.RCDIV = 0; //Set RCDIV=1:1 (default 2:1) 32MHz or FCY/2=16M
+}
+void loop(void);
+int main(void) {
+ setup();
+ loop();
+ return 0;
+}
+
+void loop(void) {
+ while (1) {
+ //do nothing
+ }
+}
\ No newline at end of file |