kamilosxd678

Untitled

Apr 17th, 2013
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. /*
  2. * zad1.c
  3. *
  4. * Created: 2013-04-17 11:49:22
  5. * Author: student
  6. */
  7.  
  8. #include <avr/io.h>
  9. #include <lcd.h>
  10. #include <one_wire.h>
  11. #include <util/crc16.h>
  12.  
  13. void iB_send_cmd(char cmd)
  14. {
  15. for (int i = 0; i < 8; i++)
  16. {
  17. iB_send_bit(cmd & 0x01);
  18. cmd >>=1;
  19. }
  20. }
  21.  
  22. void iB_zapal(char led)
  23. {
  24. iB_wy |=_BV(led);
  25. }
  26.  
  27. void iB_zgas(char led)
  28. {
  29. iB_wy &=~_BV(led);
  30. }
  31.  
  32. iB_init()
  33. {
  34. // Diody: kier. WY
  35. iB_tx |=_BV(iB_RED) |_BV(iB_GREEN);
  36. // Linia 1-Wire: kier. WE (stan HIGH)
  37. iB_tx &=~_BV(iB_LINE);
  38. // Gasi diody
  39. iB_zgas(iB_RED);
  40. iB_zgas(iB_GREEN);
  41. // Linia 1-Wire: przygotowanie stanu LOW dla nadawania
  42. iB_wy &=~_BV(iB_LINE);
  43. }
  44.  
  45. char iB_33h(char* Tab)
  46. {
  47. volatile char al;
  48. iB_send_cmd(0x33);
  49. char crc = 0;
  50. for (int i = 7; i > -1; i--) // 8 bajtów, od LSB
  51. {
  52. al = 0;
  53. for (int k = 0; k < 8; k++) // 8 bitów, od najmłodszego
  54. {
  55. al >>= 1;
  56. al |= iB_recv() << 7; // Bit na pozycji 7
  57. }
  58. crc = _crc_ibutton_update(crc, al);
  59. Tab[i] = al;
  60. }
  61. return(crc);
  62. }
  63.  
  64. int main(void)
  65. {
  66. //_init_LCD();
  67.  
  68. iB_init();
  69.  
  70. //char tab[80];
  71.  
  72. //_iB_33h(tab);
  73.  
  74.  
  75.  
  76. while(1)
  77. {
  78. while(1)
  79. {
  80. iB_zapal(iB_RED);
  81. _delay_ms(500);
  82.  
  83. if(iB_reset() != 0x01)
  84. break;
  85.  
  86. iB_zgas(iB_RED);
  87. _delay_ms(500);
  88.  
  89. if(iB_reset() != 0x01)
  90. break;
  91. }
  92. iB_zgas(iB_RED);
  93. iB_zapal(iB_GREEN);
  94. _delay_ms(3000);
  95. iB_zgas(iB_GREEN);
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment