Guest User

Untitled

a guest
Jan 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. unsigned char HWADR_DS1621 = 0b10010000;
  2. unsigned char HWADR_PCF8574 = 0b01000000;
  3. unsigned char A012 = 0b00001110;
  4. unsigned char R_W = 0;
  5.  
  6. unsigned char ack;
  7.  
  8. // inicializace prostredi
  9. avrkit_init();
  10.  
  11. printf( "AVR-KIT ready...\n\n" );
  12.  
  13. // uvedeni sbernice do klidoveho stavu
  14. I2C_Init();
  15.  
  16. // zacatek komunikace
  17. I2C_Start();
  18.  
  19.  
  20. // citam ac
  21. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  22.  
  23. if (ack != 0)
  24. printf("Chyba\n");
  25.  
  26. // AC = Access config
  27. ack = I2C_Vystup(0xAC);
  28.  
  29. I2C_Start();
  30. R_W = 1;
  31. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  32. R_W = 0;
  33.  
  34. if (ack != 0)
  35. printf("Chyba\n");
  36.  
  37. int config = I2C_Vstup();
  38.  
  39. I2C_NAck();
  40. I2C_Stop();
  41.  
  42. config = config & 0b11111110;
  43.  
  44. // vkladam register
  45. I2C_Start();
  46.  
  47. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  48.  
  49. if (ack != 0)
  50. printf("Chyba\n");
  51.  
  52. // AC = Access config
  53. ack = I2C_Vystup(0xAC);
  54. ack = I2C_Vystup(config);
  55.  
  56. I2C_Stop();
  57.  
  58. // start merania
  59. I2C_Start();
  60.  
  61. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  62. if (ack != 0)
  63. printf("Chyba\n");
  64.  
  65. // EE = Prevod teploty
  66. ack = I2C_Vystup(0xEE);
  67. I2C_Stop();
  68.  
  69. // citanie teploty
  70.  
  71. I2C_Start();
  72. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  73.  
  74. // AA = read temp
  75. ack = I2C_Vystup(0xAA);
  76.  
  77. // novy start, citanie
  78. I2C_Start();
  79. R_W = 1;
  80. ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
  81.  
  82. if (ack != 0)
  83. printf("Chyba\n");
  84.  
  85. // prvy byte
  86. char prvyC = I2C_Vstup();
  87. I2C_Ack();
  88.  
  89. // druhy byte
  90. char druhyC = I2C_Vstup();
  91. I2C_NAck();
  92.  
  93. // STOP connect
  94. I2C_Stop();
  95.  
  96. int desatina;
  97.  
  98. if (druhyC == 0)
  99. desatina = 0;
  100. else
  101. desatina = 5;
  102.  
  103. printf("%d\.%d\n", prvyC, desatina);
Add Comment
Please, Sign In to add comment