слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Код: Выделить всё
switch(menu_item){Код: Выделить всё
case 0:
get_date();
disp_date(1);
delay_ms(2000);
while(OK);
menu_item=menu_NULL;
get_time();
disp_time(2);
while(shift);
break;
Код: Выделить всё
case menu_NULL:
....RoboC писал(а):студия стоит не 6я , а 4я?
Я не знаю, чью прошивку Вы взяли, в моей оригинальной никакого "case 0:" нет, везде используются дефайны. Также не понятно, почему у функций работы с термодатчиком есть аргумент "0" - у меня его изначально не было, т.к. использовалась опция новой библиотеки для работы с одним датчиком (экономия памяти).RoboC писал(а):соответственно компилятор на это ругается...
Код: Выделить всё
ds18b20_simple_init(DS18B20_12BIT_RES);
ds18b20_start_conv();
слева!Да мой косяк, кривые пальцы.Я не знаю, чью прошивку Вы взяли, в моей оригинальной никакого "case 0:" нет
Код: Выделить всё
signed int ds18b20_temperature(unsigned char *addr);
void ds18b20_start_conv(unsigned char *addr);
unsigned char ds18b20_check_conv_end(void);
signed int ds18b20_read_temp(unsigned char *addr);
слева!Код: Выделить всё
if(tmp&(1<<6)!= 0) PORTC.5=0;
PORTB|=0b10111000;
PORTB&=0b01000111|(~tmp);
PORTD|=0b00000111;
PORTD&=0b11111000|(~tmp);Код: Выделить всё
if(tmp&(1<<6)) PORTC.5=0;
else PORTC.5=1;
слева!Он уже в вашей прошивку прописан как выход сразу.*Trigger* писал(а):Во-первых, нужно перевести PC5 на выход (надеюсь, это уже сделано).
Да, сделал как описано, описание рабочее, но пока PC5 является сеткой.Описание алгоритма индикации - здесь (наверное, Вы уже видели этот пост).
Код: Выделить всё
PORTD|=0b00000111;
PORTD&=0b11111000|(~tmp);Код: Выделить всё
PORTB|=0b01000111;
PORTD|=0b11111000;Код: Выделить всё
if(tmp&(1<<6)!= 0) PORTC.5=0; Код: Выделить всё
if(tmp&((1<<6)!= 0)) PORTC.5=0; Код: Выделить всё
if(tmp&1) PORTC.5=0; Код: Выделить всё
if(tmp&(1<<6)) PORTC.5=0;
else PORTC.5=1; Код: Выделить всё
if((tmp&(1<<6))!=0) PORTC.5=0;
else PORTC.5=1;
слева!Семен Семеныч..Ну и, наконец, приоритет операции сравнения выше, чем операции "побитовое И".
Код: Выделить всё
#ifdef DS1307
tmp = rtc_read(0x00);
if(tmp&(1<<7)){
tmp&=~(1<<7); //OSCILLATOR ON
rtc_write(0x00, tmp);
}
rtc_write(0x07,0x13); //SQW OUT ON, 32768Hz
#endifКод: Выделить всё
#ifdef DS3231
rtc_write(0x0E,0x10); //SQW OUT ON, 4096Hz
#endif
#ifdef DS1307
tmp = rtc_read(0x00);
if(tmp&(1<<7)){
tmp&=~(1<<7); //OSCILLATOR ON
rtc_write(0x00, tmp);
}
rtc_write(0x07,0x11); //SQW OUT ON, 4096Hz
#endif
Код: Выделить всё
unsigned char ds18b20_select(unsigned char *addr);
unsigned char ds18b20_read_spd(unsigned char *addr);
signed int ds18b20_temperature(unsigned char *addr);
unsigned char ds18b20_init(unsigned char *addr,signed char temp_low,signed char temp_high,
unsigned char resolution);
unsigned char ds18b20_start_conv(unsigned char *addr);
unsigned char ds18b20_check_conv_end(void);
signed int ds18b20_read_temp(unsigned char *addr);Код: Выделить всё
unsigned char ds18b20_init(DS18b20_FUNC_PARAM1 signed char temp_low,signed char temp_high,
unsigned char resolution)
unsigned char ds18b20_start_conv(DS18b20_FUNC_PARAM)
...Код: Выделить всё
unsigned char ds18b20_simple_init(DS18b20_FUNC_PARAM1 unsigned char resolution)