Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned char HWADR_DS1621 = 0b10010000;
- unsigned char HWADR_PCF8574 = 0b01000000;
- unsigned char A012 = 0b00001110;
- unsigned char R_W = 0;
- unsigned char ack;
- // inicializace prostredi
- avrkit_init();
- printf( "AVR-KIT ready...\n\n" );
- // uvedeni sbernice do klidoveho stavu
- I2C_Init();
- // zacatek komunikace
- I2C_Start();
- // citam ac
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- if (ack != 0)
- printf("Chyba\n");
- // AC = Access config
- ack = I2C_Vystup(0xAC);
- I2C_Start();
- R_W = 1;
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- R_W = 0;
- if (ack != 0)
- printf("Chyba\n");
- int config = I2C_Vstup();
- I2C_NAck();
- I2C_Stop();
- config = config & 0b11111110;
- // vkladam register
- I2C_Start();
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- if (ack != 0)
- printf("Chyba\n");
- // AC = Access config
- ack = I2C_Vystup(0xAC);
- ack = I2C_Vystup(config);
- I2C_Stop();
- // start merania
- I2C_Start();
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- if (ack != 0)
- printf("Chyba\n");
- // EE = Prevod teploty
- ack = I2C_Vystup(0xEE);
- I2C_Stop();
- // citanie teploty
- I2C_Start();
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- // AA = read temp
- ack = I2C_Vystup(0xAA);
- // novy start, citanie
- I2C_Start();
- R_W = 1;
- ack = I2C_Vystup( HWADR_DS1621 | A012 | R_W );
- if (ack != 0)
- printf("Chyba\n");
- // prvy byte
- char prvyC = I2C_Vstup();
- I2C_Ack();
- // druhy byte
- char druhyC = I2C_Vstup();
- I2C_NAck();
- // STOP connect
- I2C_Stop();
- int desatina;
- if (druhyC == 0)
- desatina = 0;
- else
- desatina = 5;
- printf("%d\.%d\n", prvyC, desatina);
Add Comment
Please, Sign In to add comment