aboutsummaryrefslogtreecommitdiffstats
path: root/HW3.X/strap012_hw3prob2.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--HW3.X/strap012_hw3prob2.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/HW3.X/strap012_hw3prob2.c b/HW3.X/strap012_hw3prob2.c
deleted file mode 100644
index 6071e56..0000000
--- a/HW3.X/strap012_hw3prob2.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <xc.h>
-
-// PIC24FJ64GA002 Configuration Bit Settings
-// 'C' source line config statements
-
-// CONFIG2
-#pragma config POSCMOD = NONE // Primary Oscillator Select (Primary oscillator disabled)
-#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 = OFF // Primary Oscillator Output Function (OSC2/CLKO/RC15 functions as CLKO (FOSC/2))
-#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))
-#pragma config SOSCSEL = SOSC // Sec Oscillator Select (Default Secondary Oscillator (SOSC))
-#pragma config WUTSEL = LEG // Wake-up timer Select (Legacy Wake-up Timer)
-#pragma config IESO = ON // Internal External Switch Over Mode (IESO mode (Two-Speed Start-up) enabled)
-
-// CONFIG1
-#pragma config WDTPS = PS32768 // Watchdog Timer Postscaler (1:32,768)
-#pragma config FWPSA = PR128 // WDT Prescaler (Prescaler ratio of 1:128)
-#pragma config WINDIS = ON // Watchdog Timer Window (Standard Watchdog Timer enabled,(Windowed-mode is disabled))
-#pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled)
-#pragma config ICS = PGx1 // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
-#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)
-
-// This program measures the duty cycle (i.e., duration of a signal being 1) in
-// terms of num cycles.
-// INT0 pin has the external sig. T1 counts #cycles.
-// Both programmed as interrupts.
-
-volatile unsigned int overflow = 0;
-volatile unsigned long int numCycles = 0; // duty cycle in terms of # TCY
-volatile unsigned int high = 0, low = 0;
-
-void __attribute__((__interrupt__,__auto_psv__)) _T1Interrupt(void)
-{
- IFS0bits.T1IF = 0;
- overflow++;
-}
-
-void __attribute__((__interrupt__,__auto_psv__)) _INT0Interrupt(void)
-{
- _INT0IF = 0;
-
- if (_INT0EP == 0){ // I was waiting for a rising edge
- TMR1 = 0;
- overflow = 0;
- } else { // I was waiting for a falling edge
- numCycles = TMR1 + 16000L * overflow;
-// TMR1 = 0; // uncomment these two lines if you want the period
-// overflow = 0; // and not just active duty cycle. also
- // delete the if part, and the last line
- // that changes polarity of INT0EP
- }
-
- _INT0EP = 1 - _INT0EP;
-
-}
-
-void setup(void)
-{
- CLKDIVbits.RCDIV = 0; // make 16MHz
- // setup INT0 (RB7) pin as input
- AD1PCFG = 0x9fff;
- LATBbits.LATB7 = 1;
-
- T1CON = 0;
- PR1 = 15999;
- TMR1 = 0;
- T1CONbits.TON = 1;
-
- IFS0bits.T1IF = 0;
- //IPC0bits.T1IP = 4;
- /* enable Timer 1 interrupt */
- IEC0bits.T1IE = 1;
-
- _INT0EP = 0;
- _INT0IF = 0;
- _INT0IE = 1;
-
-}
-
-
-int main(void)
-{
-
- setup();
- int edge = 0;
- while (1) {
-
- }
-}