Curtis Mulady
/
HelloWorld
4180 LAB 1, YALL
main.cpp@0:f2325cc3c756, 2012-09-04 (annotated)
- 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?
User | Revision | Line number | New 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 | } |