Testprogramm für BERTL 2014, der BULME Graz/Gösting. Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten
Fork of BERTL14_I2C_TEST by
main.cpp@0:7def09334278, 2014-05-07 (annotated)
- Committer:
- bulme_rai
- Date:
- Wed May 07 10:02:43 2014 +0000
- Revision:
- 0:7def09334278
Testprogramm f?r BERTL 2014, der BULME Graz/G?sting.; Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bulme_rai | 0:7def09334278 | 1 | /*********************************** |
bulme_rai | 0:7def09334278 | 2 | name: BERTL14_I2C_TEST |
bulme_rai | 0:7def09334278 | 3 | author: Wolfgang Raimann |
bulme_rai | 0:7def09334278 | 4 | email: rai@bulme.at |
bulme_rai | 0:7def09334278 | 5 | description: |
bulme_rai | 0:7def09334278 | 6 | Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten |
bulme_rai | 0:7def09334278 | 7 | ***********************************/ |
bulme_rai | 0:7def09334278 | 8 | |
bulme_rai | 0:7def09334278 | 9 | #include "mbed.h" |
bulme_rai | 0:7def09334278 | 10 | |
bulme_rai | 0:7def09334278 | 11 | const int PCA9555_ADR = 0x40; |
bulme_rai | 0:7def09334278 | 12 | #define I2C_WRITE 0 |
bulme_rai | 0:7def09334278 | 13 | #define I2C_READ 1 |
bulme_rai | 0:7def09334278 | 14 | |
bulme_rai | 0:7def09334278 | 15 | I2C i2c(p28, p27); |
bulme_rai | 0:7def09334278 | 16 | |
bulme_rai | 0:7def09334278 | 17 | |
bulme_rai | 0:7def09334278 | 18 | int main() { |
bulme_rai | 0:7def09334278 | 19 | char btn = 0; |
bulme_rai | 0:7def09334278 | 20 | // Config PCA9555 I0 as output |
bulme_rai | 0:7def09334278 | 21 | i2c.start(); |
bulme_rai | 0:7def09334278 | 22 | i2c.write(PCA9555_ADR + I2C_WRITE); |
bulme_rai | 0:7def09334278 | 23 | i2c.write(0x06); |
bulme_rai | 0:7def09334278 | 24 | i2c.write(0x00); |
bulme_rai | 0:7def09334278 | 25 | i2c.stop(); |
bulme_rai | 0:7def09334278 | 26 | |
bulme_rai | 0:7def09334278 | 27 | while(1) { |
bulme_rai | 0:7def09334278 | 28 | // Einlesen der Taster |
bulme_rai | 0:7def09334278 | 29 | i2c.start(); |
bulme_rai | 0:7def09334278 | 30 | i2c.write(PCA9555_ADR + I2C_WRITE); |
bulme_rai | 0:7def09334278 | 31 | i2c.write(0x01); |
bulme_rai | 0:7def09334278 | 32 | i2c.start(); |
bulme_rai | 0:7def09334278 | 33 | i2c.write(PCA9555_ADR + I2C_READ); |
bulme_rai | 0:7def09334278 | 34 | btn = i2c.read(0); |
bulme_rai | 0:7def09334278 | 35 | i2c.stop(); |
bulme_rai | 0:7def09334278 | 36 | // Schreiben auf die LED's |
bulme_rai | 0:7def09334278 | 37 | i2c.start(); |
bulme_rai | 0:7def09334278 | 38 | i2c.write(PCA9555_ADR + I2C_WRITE); |
bulme_rai | 0:7def09334278 | 39 | i2c.write(0x02); |
bulme_rai | 0:7def09334278 | 40 | i2c.write(~btn); |
bulme_rai | 0:7def09334278 | 41 | i2c.stop(); |
bulme_rai | 0:7def09334278 | 42 | } |
bulme_rai | 0:7def09334278 | 43 | } |