IC 165 serial input IN by Abhinav
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:9b87785841ab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Dec 03 07:27:42 2016 +0000 @@ -0,0 +1,132 @@ +#include "mbed.h" +#include <bitset> + +//DigitalOut lat(P8_11); +//DigitalOut dat(P8_13); +//DigitalOut clk(P4_4); +DigitalOut pins[1][3] = {{P8_11,P8_13,P4_4}}; +DigitalIn ser(P2_14); +DigitalOut clk_inh(P4_5); +DigitalOut clk_2(P4_7); +DigitalOut SH_LD(P4_6); + +int delay_time; +uint8_t data_read = 0x00; + +void shift(uint8_t data, int delay_time,int row_no){ + DigitalOut lat = pins[row_no][0]; + DigitalOut dat = pins[row_no][1]; + DigitalOut clk = pins[row_no][2]; + clk = 0; + dat = 0; + lat = 0; + SH_LD = 1; + clk_inh = 1; + clk_2 = 1; + data_read = 0x00; + + dat = data & 0x80; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x40; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x20; + clk = 1; + // wait_us(delay_time); + clk = 0; + + dat = data & 0x10; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x08; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x04; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x02; + clk = 1; +// wait_us(delay_time); + clk = 0; + + dat = data & 0x01; + clk = 1; +// wait_us(delay_time); + clk = 0; + + lat = 1; +// wait(delay_time); + lat = 0; + + SH_LD = 0; + wait_ms(100); + SH_LD = 1; + wait_ms(500); + clk_inh = 0; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; + + wait_ms(500); + clk_2 = 0; + data_read = (data_read<<1)|ser; + wait_ms(500); + clk_2 = 1; +} + +int main() { + + shift(0x35, 0.001, 0); + wait(2); + shift(~data_read, 0.001, 0); +} \ No newline at end of file