diff options
Diffstat (limited to '')
-rw-r--r-- | Lab_2B.X/lab2b_c.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/Lab_2B.X/lab2b_c.c b/Lab_2B.X/lab2b_c.c deleted file mode 100644 index ae32849..0000000 --- a/Lab_2B.X/lab2b_c.c +++ /dev/null @@ -1,175 +0,0 @@ -#include "xc.h"
-#include "lab2b_header.h"
-#include "stdint.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))
-#define PERIOD 120
-
-//DEFINTIONS
-void writeColor(int r, int g, int b);
-void loop(void);
-void delay(int delay_in_ms);
-uint32_t packColor(unsigned char Red, unsigned char Grn, unsigned char Blu);
-unsigned char getR(uint32_t RGBval);
-unsigned char getG(uint32_t RGBval);
-unsigned char getB(uint32_t RGBval);
-void writePacCol(uint32_t PackedColor);
-uint32_t Wheel(unsigned char WheelPos);
-
-void setup(void) {
- CLKDIVbits.RCDIV = 0; //Set RCDIV=1:1 (default 2:1) 32MHz or FCY/2=16M
- AD1PCFG = 0x9fff;
- TRISA = 0b1111111111111110;
- TRISB = 0x0000;
- wait_100us();
-}
-
-int main(void) {
- setup();
- wait_100us();
- loop();
- return 0;
-}
-
-void loop(void) {
- while (1) {
-// LATA = 0x0000;
-// wait_100us();
-//
-// //RED
-// write_1();
-// write_1();
-// write_1();
-// write_1();
-//
-// write_1();
-// write_1();
-// write_1();
-// write_1();
-//
-// //GREEN
-// write_1();
-// write_0();
-// write_0();
-// write_1();
-//
-// write_1();
-// write_0();
-// write_1();
-// write_1();
-//
-// //BLUE
-// write_0();
-// write_0();
-// write_0();
-// write_0();
-//
-// write_0();
-// write_0();
-// write_0();
-// write_0();
-/*
- writeColor(255, 155, 000);
-*/
- int byteFrameNumber = 0;
- while (byteFrameNumber <= 255) {
-// // COLOR GRADIENT
-// writeColor(byteFrameNumber, 0 , 255 - byteFrameNumber);
- //COLOR WHEEL
- writePacCol(Wheel(byteFrameNumber));
- delay(PERIOD);
- byteFrameNumber++;
- }
- }
-}
-
-void writeColor(int r, int g, int b) {
- short i = 0;
- LATA = 0x0000;
- wait_100us();
- //RED
- while (i < 8) {
- if (r & 1) {
- write_1();
- } else {
- write_0();
- }
-
- r >>= 1;
- ++i;
- }
- //GREEN
- while (i > 0) {
- if (g & 1) {
- write_1();
- } else {
- write_0();
- }
- g >>= 1;
- --i;
- }
- //BLUE
- while (i < 8){
- if (b & 1) {
- write_1();
- } else {
- write_0();
- }
- b >>= 1;
- ++i;
- }
-}
-
-void delay(int delay_in_ms) {
- int i = 0;
- while (i < delay_in_ms) {
- wait_1ms();
- i++;
- }
-}
-
-uint32_t packColor(unsigned char Red, unsigned char Grn, unsigned char Blu) {
- return ((long) Red << 16) | ((long) Grn << 8) | ((long) Blu);
-}
-
-unsigned char getR(uint32_t RGBval) {
- return (unsigned char) (RGBval >> 16);
-}
-unsigned char getG(uint32_t RGBval) {
- return (unsigned char) (RGBval >> 8 );
-}
-unsigned char getB(uint32_t RGBval) {
- return (unsigned char) (RGBval >> 0 );
-}
-
-void writePacCol(uint32_t PackedColor) {
- writeColor(getR(PackedColor), getG(PackedColor), getB(PackedColor));
-}
-
-uint32_t Wheel(unsigned char WheelPos) {
-// Input a value 0 to 255 to get a color value.
-// The colours are a transition r - g - b - back to r.
- WheelPos = 255 - WheelPos;
- if(WheelPos < 85) {
- return packColor(255 - WheelPos * 3, 0, WheelPos * 3);
- }
- if(WheelPos < 170) {
- WheelPos -= 85;
- return packColor(0, WheelPos * 3, 255 - WheelPos * 3);
- }
- WheelPos -= 170;
- return packColor(WheelPos * 3, 255 - WheelPos * 3, 0);
-}
\ No newline at end of file |