From 5178d116044f64b409b17ef026be88b44a00e84d Mon Sep 17 00:00:00 2001 From: RossTheRoss Date: Sat, 21 Mar 2020 14:42:49 -0500 Subject: Do HW3 --- HW3.X/strap012_hw3prob1.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 HW3.X/strap012_hw3prob1.c (limited to 'HW3.X/strap012_hw3prob1.c') diff --git a/HW3.X/strap012_hw3prob1.c b/HW3.X/strap012_hw3prob1.c new file mode 100644 index 0000000..709bb00 --- /dev/null +++ b/HW3.X/strap012_hw3prob1.c @@ -0,0 +1,57 @@ +#include + +// PIC24FJ64GA002 Configuration Bit Settings +// 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 POSCMOD = NONE // Primary Oscillator Select (Primary oscillator disabled. + // Primary Oscillator refers to an external osc connected to the OSC1 and OSC2 pins) +#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 // OSC2/CLKO/RC15 functions as port I/O (RC15) +#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)) + +volatile unsigned long int msecs = 0; + + +void __attribute__((__interrupt__,__auto_psv__)) _T1Interrupt(void) +{ + IFS0bits.T1IF = 0; + msecs++; +} + +void setup(void) +{ + CLKDIVbits.RCDIV = 0; // make 16MHz + + T1CON = 0; + PR1 = 0xFFFF; + + IFS0bits.T1IF = 0; + IPC0bits.T1IP = 3; + + /* enable Timer 1 interrupt */ + IEC0bits.T1IE = 1; + + T1CONbits.TON = 1; +} + + +int main(void) +{ + unsigned long int count = 0; + + setup(); + + while (1) { + count++; + } +} -- cgit v1.2.3