IfoR писал(а):DX168B, я, наверно, не совсем в теме, но может быть так:Код: Выделить всё
#include <avr\io.h>
#include <util\delay.h>
#include <avr\pgmspace.h>
const char b[] = {128,64,32,16,8,4,2,1};
int main(void)
{
DDRB=0xFF;
for(int j =0;j<sizeof(b);j++)
{
PORTB = b[j];
_delay_ms(500);
}
for(;;);
}
Огромное спасибо тебе человек прям огроменное, я немного посчитал помучал потрогал погрел и сделал вывод что мне нафиг не нужно чтоб у меня была погрешность в 0.01% мне хватит и 1% чтоб понять что там на улице вобшем то что там мы считали все только для того чтоб вывести погрешность в 0.01% а на один процент достаточно и этого
Код: Выделить всё
LCDinit();
LCDclr();
SCH_Enable();
SCH_Reset();
SCH_Start();
SCH_Write(0b00000011);
SCH_Meas();
i=SCH_Read(0);
b=SCH_Read(1);
temp=i<<8;
temp=temp+b;
uint16_t temperatura=(temp-4010)/10;
sprintf(Buf,"T=%3u",temperatura);
LCDGotoXY(0,0);
LCDsendString(Buf);
SCH_Enable();
SCH_Reset();
SCH_Start();
SCH_Write(0b00000101);
SCH_Meas();
i=SCH_Read(0);
b=SCH_Read(1);
temp=i<<8;
temp=temp+b;
uint16_t humidity=((0.367*temp)-20.468);
sprintf(Buf,"RH=%3u",humidity);
LCDGotoXY(6,0);
LCDsendString(Buf);
вывод такой T=229 RH=356
ну типа 22.9 и 35.6



