Rev 1516 | Rev 1524 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1516 | Rev 1518 | ||
|---|---|---|---|
| Line 190... | Line 190... | ||
| 190 | } |
190 | } |
| 191 | #endif |
191 | #endif |
| 192 | 192 | ||
| 193 | void sns_input_Init(void) |
193 | void sns_input_Init(void) |
| 194 | { |
194 | { |
| 195 | - | ||
| 196 | #if sns_input_CH0PCA95xxIO==1 |sns_input_CH1PCA95xxIO==1 | sns_input_CH2PCA95xxIO==1 | sns_input_CH3PCA95xxIO==1 | sns_input_CH4PCA95xxIO==1 | sns_input_CH5PCA95xxIO==1 | sns_input_CH6PCA95xxIO==1 | sns_input_CH7PCA95xxIO==1 |
- | |
| 197 | Pca95xx_Init(0); |
- | |
| 198 | /* Currently only polling of ports is implemented */ |
- | |
| 199 | //Pca95xx_SetCallback(sns_input_PCA95XX_CALLBACK_INDEX, &sns_input_PCA95xx_callback); |
- | |
| 200 | Timer_SetTimeout(sns_input_PCA95XX_POLL_TIMER, sns_input_PCA95XX_POLL_TIME_MS, TimerTypeFreeRunning, 0); |
- | |
| 201 | #endif |
- | |
| 202 | - | ||
| 203 | pinStatus[0] = NOCHANGE; |
195 | pinStatus[0] = NOCHANGE; |
| 204 | pinStatus[1] = NOCHANGE; |
196 | pinStatus[1] = NOCHANGE; |
| 205 | pinStatus[2] = NOCHANGE; |
197 | pinStatus[2] = NOCHANGE; |
| 206 | pinStatus[3] = NOCHANGE; |
198 | pinStatus[3] = NOCHANGE; |
| 207 | pinStatus[4] = NOCHANGE; |
199 | pinStatus[4] = NOCHANGE; |
| 208 | pinStatus[5] = NOCHANGE; |
200 | pinStatus[5] = NOCHANGE; |
| 209 | pinStatus[6] = NOCHANGE; |
201 | pinStatus[6] = NOCHANGE; |
| 210 | pinStatus[7] = NOCHANGE; |
202 | pinStatus[7] = NOCHANGE; |
| 211 | uint8_t index = 0; |
203 | uint8_t index = 0; |
| - | 204 | ||
| - | 205 | #if sns_input_CH0PCA95xxIO==1 |sns_input_CH1PCA95xxIO==1 | sns_input_CH2PCA95xxIO==1 | sns_input_CH3PCA95xxIO==1 | sns_input_CH4PCA95xxIO==1 | sns_input_CH5PCA95xxIO==1 | sns_input_CH6PCA95xxIO==1 | sns_input_CH7PCA95xxIO==1 |
|
| - | 206 | Pca95xx_Init(0); |
|
| - | 207 | #endif |
|
| - | 208 | ||
| 212 | #ifdef sns_input_CH0 |
209 | #ifdef sns_input_CH0 |
| 213 | #if sns_input_CH0PCA95xxIO==0 |
210 | #if sns_input_CH0PCA95xxIO==0 |
| 214 | #if (sns_input_CH0_pullup == 1) |
211 | #if (sns_input_CH0_pullup == 1) |
| 215 | gpio_set_pullup(sns_input_CH0); |
212 | gpio_set_pullup(sns_input_CH0); |
| 216 | #else |
213 | #else |
| Line 253... | Line 250... | ||
| 253 | #endif |
250 | #endif |
| 254 | #ifdef sns_input_CH3 |
251 | #ifdef sns_input_CH3 |
| 255 | #if sns_input_CH3PCA95xxIO==0 |
252 | #if sns_input_CH3PCA95xxIO==0 |
| 256 | #if (sns_input_CH3_pullup == 1) |
253 | #if (sns_input_CH3_pullup == 1) |
| 257 | gpio_set_pullup(sns_input_CH3); |
254 | gpio_set_pullup(sns_input_CH3); |
| 258 | #else |
255 | #else |
| 259 | gpio_clr_pullup(sns_input_CH3); |
256 | gpio_clr_pullup(sns_input_CH3); |
| 260 | #endif |
257 | #endif |
| 261 | gpio_set_in(sns_input_CH3); |
258 | gpio_set_in(sns_input_CH3); |
| 262 | Pcint_SetCallbackPin(sns_input_PCINT_CH3, sns_input_CH3, &sns_input_pcint_callback); |
259 | Pcint_SetCallbackPin(sns_input_PCINT_CH3, sns_input_CH3, &sns_input_pcint_callback); |
| 263 | #else |
260 | #else |
| 264 | Pca95xx_set_in(sns_input_CH3); |
261 | Pca95xx_set_in(sns_input_CH3); |
| 265 | #endif |
262 | #endif |
| Line 269... | Line 266... | ||
| 269 | #if sns_input_CH4PCA95xxIO==0 |
266 | #if sns_input_CH4PCA95xxIO==0 |
| 270 | #if (sns_input_CH4_pullup == 1) |
267 | #if (sns_input_CH4_pullup == 1) |
| 271 | gpio_set_pullup(sns_input_CH4); |
268 | gpio_set_pullup(sns_input_CH4); |
| 272 | #else |
269 | #else |
| 273 | gpio_clr_pullup(sns_input_CH4); |
270 | gpio_clr_pullup(sns_input_CH4); |
| 274 | #endif |
271 | #endif |
| 275 | gpio_set_in(sns_input_CH4); |
272 | gpio_set_in(sns_input_CH4); |
| 276 | Pcint_SetCallbackPin(sns_input_PCINT_CH4, sns_input_CH4, &sns_input_pcint_callback); |
273 | Pcint_SetCallbackPin(sns_input_PCINT_CH4, sns_input_CH4, &sns_input_pcint_callback); |
| 277 | #else |
274 | #else |
| 278 | Pca95xx_set_in(sns_input_CH4); |
275 | Pca95xx_set_in(sns_input_CH4); |
| 279 | #endif |
276 | #endif |
| Line 318... | Line 315... | ||
| 318 | Pcint_SetCallbackPin(sns_input_PCINT_CH7, sns_input_CH7, &sns_input_pcint_callback); |
315 | Pcint_SetCallbackPin(sns_input_PCINT_CH7, sns_input_CH7, &sns_input_pcint_callback); |
| 319 | #else |
316 | #else |
| 320 | Pca95xx_set_in(sns_input_CH7); |
317 | Pca95xx_set_in(sns_input_CH7); |
| 321 | #endif |
318 | #endif |
| 322 | index++; |
319 | index++; |
| - | 320 | #endif |
|
| - | 321 | ||
| - | 322 | #if sns_input_CH0PCA95xxIO==1 |sns_input_CH1PCA95xxIO==1 | sns_input_CH2PCA95xxIO==1 | sns_input_CH3PCA95xxIO==1 | sns_input_CH4PCA95xxIO==1 | sns_input_CH5PCA95xxIO==1 | sns_input_CH6PCA95xxIO==1 | sns_input_CH7PCA95xxIO==1 |
|
| - | 323 | sns_input_setPCA95xxPinStatus(); |
|
| - | 324 | /* Currently only polling of ports is implemented */ |
|
| - | 325 | //Pca95xx_SetCallback(sns_input_PCA95XX_CALLBACK_INDEX, &sns_input_PCA95xx_callback); |
|
| - | 326 | Timer_SetTimeout(sns_input_PCA95XX_POLL_TIMER, sns_input_PCA95XX_POLL_TIME_MS, TimerTypeFreeRunning, 0); |
|
| 323 | #endif |
327 | #endif |
| 324 | 328 | ||
| 325 | } |
329 | } |
| 326 | 330 | ||
| 327 | void sns_input_Process(void) |
331 | void sns_input_Process(void) |
| Line 354... | Line 358... | ||
| 354 | if (Timer_Expired(sns_input_PCA95XX_POLL_TIMER)) |
358 | if (Timer_Expired(sns_input_PCA95XX_POLL_TIMER)) |
| 355 | { |
359 | { |
| 356 | uint16_t status = Pca95xx_GetInputs(); |
360 | uint16_t status = Pca95xx_GetInputs(); |
| 357 | #ifdef sns_input_CH0 |
361 | #ifdef sns_input_CH0 |
| 358 | #if sns_input_CH0PCA95xxIO==1 |
362 | #if sns_input_CH0PCA95xxIO==1 |
| 359 | if (pinStatus[0] == LOW_NOCH && ((status>>sns_input_CH0)&0x1) == |
363 | if (pinStatus[0] == LOW_NOCH && ((status>>sns_input_CH0)&0x1) == IO_HIGH) { |
| 360 | pinStatus[0] = HIGH; |
364 | pinStatus[0] = HIGH; |
| 361 | } else if (pinStatus[0] == HIGH_NOCH && ((status>>sns_input_CH0)&0x1) == |
365 | } else if (pinStatus[0] == HIGH_NOCH && ((status>>sns_input_CH0)&0x1) == IO_LOW) { |
| 362 | pinStatus[0] = LOW; |
366 | pinStatus[0] = LOW; |
| 363 | } |
367 | } |
| 364 | #endif |
368 | #endif |
| 365 | #endif |
369 | #endif |
| 366 | #ifdef sns_input_CH1 |
370 | #ifdef sns_input_CH1 |
| 367 | #if sns_input_CH1PCA95xxIO==1 |
371 | #if sns_input_CH1PCA95xxIO==1 |
| 368 | if (pinStatus[1] == LOW_NOCH && ((status>>sns_input_CH1)&0x1) == |
372 | if (pinStatus[1] == LOW_NOCH && ((status>>sns_input_CH1)&0x1) == IO_HIGH) { |
| 369 | pinStatus[1] = HIGH; |
373 | pinStatus[1] = HIGH; |
| 370 | } else if (pinStatus[1] == HIGH_NOCH && ((status>>sns_input_CH1)&0x1) == |
374 | } else if (pinStatus[1] == HIGH_NOCH && ((status>>sns_input_CH1)&0x1) == IO_LOW) { |
| 371 | pinStatus[1] = LOW; |
375 | pinStatus[1] = LOW; |
| 372 | } |
376 | } |
| 373 | #endif |
377 | #endif |
| 374 | #endif |
378 | #endif |
| 375 | #ifdef sns_input_CH2 |
379 | #ifdef sns_input_CH2 |
| 376 | #if sns_input_CH2PCA95xxIO==1 |
380 | #if sns_input_CH2PCA95xxIO==1 |
| 377 | if (pinStatus[2] == LOW_NOCH && ((status>>sns_input_CH2)&0x1) == |
381 | if (pinStatus[2] == LOW_NOCH && ((status>>sns_input_CH2)&0x1) == IO_HIGH) { |
| 378 | pinStatus[2] = HIGH; |
382 | pinStatus[2] = HIGH; |
| 379 | } else if (pinStatus[2] == HIGH_NOCH && ((status>>sns_input_CH2)&0x1) == |
383 | } else if (pinStatus[2] == HIGH_NOCH && ((status>>sns_input_CH2)&0x1) == IO_LOW) { |
| 380 | pinStatus[2] = LOW; |
384 | pinStatus[2] = LOW; |
| 381 | } |
385 | } |
| 382 | #endif |
386 | #endif |
| 383 | #endif |
387 | #endif |
| 384 | #ifdef sns_input_CH3 |
388 | #ifdef sns_input_CH3 |
| 385 | #if sns_input_CH3PCA95xxIO==1 |
389 | #if sns_input_CH3PCA95xxIO==1 |
| 386 | if (pinStatus[3] == LOW_NOCH && ((status>>sns_input_CH3)&0x1) == |
390 | if (pinStatus[3] == LOW_NOCH && ((status>>sns_input_CH3)&0x1) == IO_HIGH) { |
| 387 | pinStatus[3] = HIGH; |
391 | pinStatus[3] = HIGH; |
| 388 | } else if (pinStatus[3] == HIGH_NOCH && ((status>>sns_input_CH3)&0x1) == |
392 | } else if (pinStatus[3] == HIGH_NOCH && ((status>>sns_input_CH3)&0x1) == IO_LOW) { |
| 389 | pinStatus[3] = LOW; |
393 | pinStatus[3] = LOW; |
| 390 | } |
394 | } |
| 391 | #endif |
395 | #endif |
| 392 | #endif |
396 | #endif |
| 393 | #ifdef sns_input_CH4 |
397 | #ifdef sns_input_CH4 |
| 394 | #if sns_input_CH4PCA95xxIO==1 |
398 | #if sns_input_CH4PCA95xxIO==1 |
| 395 | if (pinStatus[4] == LOW_NOCH && ((status>>sns_input_CH4)&0x1) == |
399 | if (pinStatus[4] == LOW_NOCH && ((status>>sns_input_CH4)&0x1) == IO_HIGH) { |
| 396 | pinStatus[4] = HIGH; |
400 | pinStatus[4] = HIGH; |
| 397 | } else if (pinStatus[4] == HIGH_NOCH && ((status>>sns_input_CH4)&0x1) == |
401 | } else if (pinStatus[4] == HIGH_NOCH && ((status>>sns_input_CH4)&0x1) == IO_LOW) { |
| 398 | pinStatus[4] = LOW; |
402 | pinStatus[4] = LOW; |
| 399 | } |
403 | } |
| 400 | #endif |
404 | #endif |
| 401 | #endif |
405 | #endif |
| 402 | #ifdef sns_input_CH5 |
406 | #ifdef sns_input_CH5 |
| 403 | #if sns_input_CH5PCA95xxIO==1 |
407 | #if sns_input_CH5PCA95xxIO==1 |
| 404 | if (pinStatus[5] == LOW_NOCH && ((status>>sns_input_CH5)&0x1) == |
408 | if (pinStatus[5] == LOW_NOCH && ((status>>sns_input_CH5)&0x1) == IO_HIGH) { |
| 405 | pinStatus[5] = HIGH; |
409 | pinStatus[5] = HIGH; |
| 406 | } else if (pinStatus[5] == HIGH_NOCH && ((status>>sns_input_CH5)&0x1) == |
410 | } else if (pinStatus[5] == HIGH_NOCH && ((status>>sns_input_CH5)&0x1) == IO_LOW) { |
| 407 | pinStatus[5] = LOW; |
411 | pinStatus[5] = LOW; |
| 408 | } |
412 | } |
| 409 | #endif |
413 | #endif |
| 410 | #endif |
414 | #endif |
| 411 | #ifdef sns_input_CH6 |
415 | #ifdef sns_input_CH6 |
| 412 | #if sns_input_CH0PCA95xxIO==1 |
416 | #if sns_input_CH0PCA95xxIO==1 |
| 413 | if (pinStatus[6] == LOW_NOCH && ((status>>sns_input_CH6)&0x1) == |
417 | if (pinStatus[6] == LOW_NOCH && ((status>>sns_input_CH6)&0x1) == IO_HIGH) { |
| 414 | pinStatus[6] = HIGH; |
418 | pinStatus[6] = HIGH; |
| 415 | } else if (pinStatus[6] == HIGH_NOCH && ((status>>sns_input_CH6)&0x1) == |
419 | } else if (pinStatus[6] == HIGH_NOCH && ((status>>sns_input_CH6)&0x1) == IO_LOW) { |
| 416 | pinStatus[6] = LOW; |
420 | pinStatus[6] = LOW; |
| 417 | } |
421 | } |
| 418 | #endif |
422 | #endif |
| 419 | #endif |
423 | #endif |
| 420 | #ifdef sns_input_CH7 |
424 | #ifdef sns_input_CH7 |
| 421 | #if sns_input_CH7PCA95xxIO==1 |
425 | #if sns_input_CH7PCA95xxIO==1 |
| 422 | if (pinStatus[7] == LOW_NOCH && ((status>>sns_input_CH7)&0x1) == |
426 | if (pinStatus[7] == LOW_NOCH && ((status>>sns_input_CH7)&0x1) == IO_HIGH) { |
| 423 | pinStatus[7] = HIGH; |
427 | pinStatus[7] = HIGH; |
| 424 | } else if (pinStatus[7] == HIGH_NOCH && ((status>>sns_input_CH7)&0x1) == |
428 | } else if (pinStatus[7] == HIGH_NOCH && ((status>>sns_input_CH7)&0x1) == IO_LOW) { |
| 425 | pinStatus[7] = LOW; |
429 | pinStatus[7] = LOW; |
| 426 | } |
430 | } |
| 427 | #endif |
431 | #endif |
| 428 | #endif |
432 | #endif |
| 429 | 433 | ||