Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.

xt_io_avr.c 829B

12345678910111213141516171819202122232425262728293031323334
  1. #include <stdbool.h>
  2. #include <avr/io.h>
  3. #include <util/delay.h>
  4. /* Check port settings for clock and data line */
  5. #if !(defined(XT_CLOCK_PORT) && \
  6. defined(XT_CLOCK_PIN) && \
  7. defined(XT_CLOCK_DDR) && \
  8. defined(XT_CLOCK_BIT))
  9. # error "XT clock port setting is required in config.h"
  10. #endif
  11. #if !(defined(XT_DATA_PORT) && \
  12. defined(XT_DATA_PIN) && \
  13. defined(XT_DATA_DDR) && \
  14. defined(XT_DATA_BIT))
  15. # error "XT data port setting is required in config.h"
  16. #endif
  17. bool clock_in(void)
  18. {
  19. XT_CLOCK_DDR &= ~(1<<XT_CLOCK_BIT);
  20. XT_CLOCK_PORT |= (1<<XT_CLOCK_BIT);
  21. _delay_us(1);
  22. return XT_CLOCK_PIN&(1<<XT_CLOCK_BIT);
  23. }
  24. bool data_in(void)
  25. {
  26. XT_DATA_DDR &= ~(1<<XT_DATA_BIT);
  27. XT_DATA_PORT |= (1<<XT_DATA_BIT);
  28. _delay_us(1);
  29. return XT_DATA_PIN&(1<<XT_DATA_BIT);
  30. }