Динамическая индикация + термометр DS18B20
- Реклама
для посимвольной индикации за глаза хватает стандартной библиотеки CVAVR, только надо запрещать прерывания на время приема/передачи БИТА. Сейчас делаю термостат и там посегментная индикация...вот с ней начались проблемы (на 4 индикатора развертка около 1 кГц). Помогла библитека для работы с 1-wire от Сапего Александра Леонидовича - все красиво сделано и замечательно работает.
вроде бы я тут выкладывал свою "библиотеку" для 1-wire... не менее замечательно работает, прерывания сама запрещает, когда надо... и с посегментной, и с посимвольной и с любой индикацией...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Извените если я не в тему, но всё таки. Вот написал недавно программу на Си для термометра на МК ATtiny233 который работает с датчиком ds18b20. Термометр работает нормально, а вот захотел недавно переделать программу в терморегулятор и вроде всё работает нормально, а вот когда температура заданная "плюсовая" и измеряемая тоже "плюсовая", то сравнение работает нормально. Сравнение должно работать так, если измеряемая температура больше чем заданная, то должен загорется светодиод, а если менше чем заданная, то светодиод должен погаснуть. Так вот при плюсовой всё нормально, а если там минусовая ,а там плюсовая, или наоборот, или там минусовая и там минусовая то сравнение не работает. Вот может поможете. За ранние благодарю.
- Вложения
-
- termoregulator.rar
- (19.84 КБ) 461 скачивание

я не смотрел вложенную папку... но могу сказать что у тебя просто не правильно работает сравнение
а именно в миносовой температуре старший бит = 1, а при плюсовой старший бит = 0. пример
0b1111111 - минусовая
0b0111111 - плюсовая
что больше??
можно попробовать сделать следующее, просто "-" приводить к "+" и сравнивать с "+". также и с "-" только наоборот.
а именно в миносовой температуре старший бит = 1, а при плюсовой старший бит = 0. пример
0b1111111 - минусовая
0b0111111 - плюсовая
что больше??
можно попробовать сделать следующее, просто "-" приводить к "+" и сравнивать с "+". также и с "-" только наоборот.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
- Реклама
Если можно, примерчик кодда, просто незнаю что именно мне надо переделать. За ранние благодарю. 

посмотри как представлены отрицательные числа есть практическив люб книге по асму.в П.Абеле было кажется.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Да мне желательно на Си. Так как я начинающий и не очень понимаю все эти "выкрутасы"
. Так как был на нескольких форумах, и не кто не дал нормального совета, вот решил спросить тут.

- Сообщения: 36
- Зарегистрирован: Ср дек 06, 2006 02:34:58
Посмотри здесь, прога точно работает, у меня аквариум охраняетKrik99 писал(а):Да мне желательно на Си. Так как я начинающий и не очень понимаю все эти "выкрутасы". Так как был на нескольких форумах, и не кто не дал нормального совета, вот решил спросить тут.
- Вложения
-
- TCONTR.rar
- (82.58 КБ) 591 скачивание
чтобы получить отрицательное число надо... надо посмотреть в книге. по ассемблеру или в инете поискать. это первое.
второе, надо чуть раскинуть свой мозг, чтобы ответить на свой вопрос.
я вижу себе этот алгоритм следующим образом.
если заданная температура положительна.
Если полученная температура отрицательна, делаем из неё положительную, иначе ничего не делаем
сравниваем с заданной если полученная больше чем заданная зажигаем лампочку
если заданная температура отрицательна.
если полученная температура положительна перводим её в отицательную, если отрицательна ничего не делаем
сравниваем если полученная меньше заданной зажигаем лампочку.
второе, надо чуть раскинуть свой мозг, чтобы ответить на свой вопрос.
я вижу себе этот алгоритм следующим образом.
если заданная температура положительна.
Если полученная температура отрицательна, делаем из неё положительную, иначе ничего не делаем
сравниваем с заданной если полученная больше чем заданная зажигаем лампочку
если заданная температура отрицательна.
если полученная температура положительна перводим её в отицательную, если отрицательна ничего не делаем
сравниваем если полученная меньше заданной зажигаем лампочку.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Barni Огромное спасибо, всё подправил, теперь сравнение работает нормально, да плюс ещё и значение сохраняется в eeprom. Теперь остались мелкие доделки кода.
Всем спасибо!
Всем спасибо!



