0,0 → 1,94 |
#include "maindefs.h" |
#include "interrupts.h" |
#include "uart.h" |
//#include "i2c.h" |
//#include "adc.h" |
//#include "timers.h" |
//#include "xbee.h" |
//#include "led_driver.h" |
//#include "pwm.h" |
//#include "delays.h" |
//#include "pin_interrupts.h" |
#include <usart.h> |
#include <delays.h> |
|
#pragma config WDTEN = OFF // Turn off watchdog timer |
#pragma config XINST = OFF // Turn off extended instruction set |
#pragma config OSC = HSPLL // Use external oscillator (101) |
#pragma config PLLDIV = 3 // Set PPL prescaler to 3 (to get 4MHz) |
#pragma config CFGPLLEN = ON // Enable PLL on startup |
#pragma config PLLSEL = PLL96 // Use 96MHz PLL 4MHz -> 96MHz / 2 = 48MHz |
//#pragma config SOSCSEL = HIGH // High Power T1OSC/SOSC circuit selected |
//#pragma config ADCSEL = BIT12 // 12-bit ADrC |
//#pragma config IOL1WAY = OFF // IOLOCK bit can be set and cleared as needed |
|
/* ----------- IO Pins ----------- |
* RA0 - |
* RA1 - |
* RA2 - |
* RA3 - |
* RA4 - [CANNOT BE USED (VDDCORE/VCAP)] |
* RA5 - |
* RA6 - Oscillator |
* RA7 - Oscillator |
* |
* RC0 - |
* RC1 - |
* RC2 - |
* RC3 - |
* RC4 - |
* RC5 - |
* RC6 - UART Debug Output |
* RC7 - UART Debug Input |
* |
* RB0 - |
* RB1 - |
* RB2 - |
* RB3 - |
* RB4 - |
* RB5 - |
* RB6 - |
* RB7 - |
* ---------------------------- */ |
|
//static I2C_DATA i2c_data; |
//static XBEE_DATA xbee_data; |
|
void main(void) { |
unsigned char i = 0; |
unsigned char length = 0; |
unsigned char buffer[100]; |
|
/* --------------------- Oscillator Configuration --------------------- */ |
// OSCTUNEbits.PLLEN = 1; // Enable 4x PLL |
OSCCONbits.IRCF = 0b111; // Set INTOSC postscaler to 8MHz |
OSCCONbits.SCS = 0b00; // Use 96MHz PLL as primary clock source |
/* -------------------------------------------------------------------- */ |
|
// Set all ports as digial I/O |
ANCON0 = 0xFF; |
ANCON1 = 0x1F; |
|
UART1_Init(); // Initialize the UART handler code |
// xbee_init(&xbee_data); // Initialize the XBee handler code |
// i2c_init(&i2c_data); // Initialize the I2C handler code |
// adc_init(); // Initialize the ADC |
// timers_init(); // Initialize timers |
// port_b_int_init(); // Initialze Port B interrupt handler |
// pwm_init(); // Initialize the PWM output driver |
|
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
|
DBG_PRINT_MAIN("\r\nBegin Program\r\n"); |
|
// Loop and process recieved messages from interrupts; |
|
while (1) { |
length = UART1_Read((char *)buffer); |
if (length != 0) { |
UART1_WriteB((char *)buffer, length) ; |
} |
Delay10KTCYx(255); |
} |
} |