воспитанные люди, как минимум, рассказывают о том, в чем была проблемаfatall_error писал(а):я разобрался
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
воспитанные люди, как минимум, рассказывают о том, в чем была проблемаfatall_error писал(а):я разобрался
Значит оскорбляем сразу!!!ARV писал(а):воспитанные люди, как минимум, рассказывают о том, в чем была проблемаfatall_error писал(а):я разобрался
в таком случае вообще не понятно, зачем использовать sprintf. вы с огромным успехом могли бы делать и так:fatall_error писал(а):Сделал так: sprintf(text,"бла-бла-бла"); и все заработало, короче параметры (%s) для строки не нужны.
Код: Выделить всё
lcd_puts("бла-бла-бла");Потому, что у меня конструкция была другая:ARV писал(а):в таком случае вообще не понятно, зачем использовать sprintf. вы с огромным успехом могли бы делать и так:fatall_error писал(а):Сделал так: sprintf(text,"бла-бла-бла"); и все заработало, короче параметры (%s) для строки не нужны.Код: Выделить всё
lcd_puts("бла-бла-бла");
Код: Выделить всё
flash char str[] = "бла-бла-бла";
char text[32];
sprintf(text, "%S", str);А Вы видите разницу междуfatall_error писал(а):Потому, что у меня конструкция была другая:
flash unsigned char *string[4][3] ={
{" dial_1 "," dial_2 "," dial_3 "},
{" send sms "," read sms "," delete sms "},
{" set1 "," set2 "," set3 "},
{" status1 "," status2 "," status3 "}
Код: Выделить всё
sprintf(text,string[x][y]);
lcd_puts(text);
Код: Выделить всё
lcd_puts(string[x][y]);
Код: Выделить всё
#include <tiny13a.h>
#include <1wire.h>
#include <ds18b20.h>
void main(void)
{
float temper;
DDRB=0b000100;
PORTB=0b000000;
w1_init();
ds18b20_init(0,10,90,DS18B20_12BIT_RES);
while (1)
{
temper=ds18b20_temperature(0);
if (temper > 40) {PORTB=0b000100;
};
if (temper < 35) {PORTB=0b000000;
};
}
}
потому что float - злоCheburator писал(а):1. Почему так получается?
не использовать float. ищите библиотечку для вашего датчика, которая работает в целых числах. но боюсь, для attiny13 эта библиотечка должна быть на ассемблере...Cheburator писал(а):2. Как с этим бороться?
Другие типы (int, char) принципиально ничего не меняют. Да и библиотека эта для датчика очень удобна. В ней есть функция (ds18b20_temperature), которая сразу выдает значение температуры в градусах...ARV писал(а):потому что float - зло
А что там? Два байта температуры с датчика. Неужто Тинька два простых числа сравнить не сможет?ARV писал(а):боюсь, для attiny13 эта библиотечка должна быть на ассемблере...
А она вам нужна? У вас же температура никуда не выводится. Вот и задавайте диапазон температур на уровне препроцессора.Cheburator писал(а):Да и библиотека эта для датчика очень удобна. В ней есть функция (ds18b20_temperature), которая сразу выдает значение температуры в градусах...
я не поручусь, что на Си можно получить 2 байта из датчика так, чтобы влезло в тиньку.scorpi_0n писал(а):А что там? Два байта температуры с датчика. Неужто Тинька два простых числа сравнить не сможет?ARV писал(а):боюсь, для attiny13 эта библиотечка должна быть на ассемблере...
Поясните чуть подробнее. Ибо, как я уже писал, я только начал изучать программирование MK.scorpi_0n писал(а):Вот и задавайте диапазон температур на уровне препроцессора.
Вот что:fatall_error писал(а):А че конкретно пишет