diff options
| -rw-r--r-- | ps2.c | 8 |
1 files changed, 7 insertions, 1 deletions
| @@ -104,9 +104,9 @@ uint8_t ps2_host_send(uint8_t data) | |||
| 104 | 104 | ||
| 105 | /* request to send */ | 105 | /* request to send */ |
| 106 | clock_lo(); | 106 | clock_lo(); |
| 107 | data_lo(); | ||
| 108 | _delay_us(100); | 107 | _delay_us(100); |
| 109 | /* start bit [1] */ | 108 | /* start bit [1] */ |
| 109 | data_lo(); | ||
| 110 | clock_hi(); | 110 | clock_hi(); |
| 111 | WAIT(clock_lo, 15000, 1); | 111 | WAIT(clock_lo, 15000, 1); |
| 112 | /* data [2-9] */ | 112 | /* data [2-9] */ |
| @@ -137,6 +137,9 @@ uint8_t ps2_host_send(uint8_t data) | |||
| 137 | 137 | ||
| 138 | return 1; | 138 | return 1; |
| 139 | ERROR: | 139 | ERROR: |
| 140 | /* inhibit device to send */ | ||
| 141 | data_hi(); | ||
| 142 | clock_lo(); | ||
| 140 | return 0; | 143 | return 0; |
| 141 | } | 144 | } |
| 142 | 145 | ||
| @@ -187,6 +190,9 @@ uint8_t ps2_host_recv(void) | |||
| 187 | 190 | ||
| 188 | return data; | 191 | return data; |
| 189 | ERROR: | 192 | ERROR: |
| 193 | /* inhibit device to send */ | ||
| 194 | data_hi(); | ||
| 195 | clock_lo(); | ||
| 190 | return 0; | 196 | return 0; |
| 191 | } | 197 | } |
| 192 | 198 | ||
