4180 LAB 1, YALL

Committer:
cmulady
Date:
Tue Sep 04 21:18:27 2012 +0000
Revision:
0:f2325cc3c756
What am I committing to?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cmulady 0:f2325cc3c756 1 #include "mbed.h"
cmulady 0:f2325cc3c756 2 #include "MCP23S17.h"
cmulady 0:f2325cc3c756 3
cmulady 0:f2325cc3c756 4 DigitalOut OnOffLED(LED1);
cmulady 0:f2325cc3c756 5 DigitalIn OnOffBtn(p30);
cmulady 0:f2325cc3c756 6 PwmOut PwmLED(LED4);
cmulady 0:f2325cc3c756 7 DigitalIn PwmBtnA(p29);
cmulady 0:f2325cc3c756 8 DigitalIn PwmBtnB(p28);
cmulady 0:f2325cc3c756 9
cmulady 0:f2325cc3c756 10 DigitalOut DebugLEDA(LED2);
cmulady 0:f2325cc3c756 11 DigitalOut DebugLEDB(LED3);
cmulady 0:f2325cc3c756 12
cmulady 0:f2325cc3c756 13 SPI spi(p5, p6, p7);
cmulady 0:f2325cc3c756 14 char Opcode = 0x40;
cmulady 0:f2325cc3c756 15 MCP23S17 chip = MCP23S17(spi, p20, Opcode);
cmulady 0:f2325cc3c756 16
cmulady 0:f2325cc3c756 17
cmulady 0:f2325cc3c756 18
cmulady 0:f2325cc3c756 19 int pwm_btn_val;
cmulady 0:f2325cc3c756 20
cmulady 0:f2325cc3c756 21 int main()
cmulady 0:f2325cc3c756 22 {
cmulady 0:f2325cc3c756 23 //Init
cmulady 0:f2325cc3c756 24 OnOffBtn.mode(PullUp);
cmulady 0:f2325cc3c756 25 PwmBtnA.mode(PullDown);
cmulady 0:f2325cc3c756 26 PwmBtnB.mode(PullDown);
cmulady 0:f2325cc3c756 27
cmulady 0:f2325cc3c756 28 //Loop
cmulady 0:f2325cc3c756 29 while(1) {
cmulady 0:f2325cc3c756 30
cmulady 0:f2325cc3c756 31
cmulady 0:f2325cc3c756 32 //OnOff LED code
cmulady 0:f2325cc3c756 33 OnOffLED = !OnOffBtn;
cmulady 0:f2325cc3c756 34
cmulady 0:f2325cc3c756 35 //PWM example
cmulady 0:f2325cc3c756 36 if(!PwmBtnA && !PwmBtnB)
cmulady 0:f2325cc3c756 37 PwmLED = 0.0;
cmulady 0:f2325cc3c756 38 else if(!PwmBtnA && PwmBtnB)
cmulady 0:f2325cc3c756 39 PwmLED = 0.33;
cmulady 0:f2325cc3c756 40 else if(PwmBtnA && !PwmBtnB)
cmulady 0:f2325cc3c756 41 PwmLED = 0.66;
cmulady 0:f2325cc3c756 42 else if(PwmBtnA && PwmBtnB)
cmulady 0:f2325cc3c756 43 PwmLED = 1.0;
cmulady 0:f2325cc3c756 44
cmulady 0:f2325cc3c756 45
cmulady 0:f2325cc3c756 46 //I/O Expander code
cmulady 0:f2325cc3c756 47 // Set all 8 Port A bits to output direction
cmulady 0:f2325cc3c756 48 chip.direction(PORT_A, 0x00);
cmulady 0:f2325cc3c756 49 // Set all 8 Port B bits to input direction
cmulady 0:f2325cc3c756 50 chip.direction(PORT_B, 0xFF);
cmulady 0:f2325cc3c756 51 //action
cmulady 0:f2325cc3c756 52 chip.write(PORT_A, (chip.read(PORT_B)&0x1)?0x80:0x00);
cmulady 0:f2325cc3c756 53
cmulady 0:f2325cc3c756 54
cmulady 0:f2325cc3c756 55
cmulady 0:f2325cc3c756 56
cmulady 0:f2325cc3c756 57 }
cmulady 0:f2325cc3c756 58 }