Динамическая индикация + термометр DS18B20
- alex2103
- Прорезались зубы
- Сообщения: 219
- Зарегистрирован: Вт сен 18, 2007 16:41:16
- Откуда: Украина, г. Запорожье
- Контактная информация:
для посимвольной индикации за глаза хватает стандартной библиотеки CVAVR, только надо запрещать прерывания на время приема/передачи БИТА. Сейчас делаю термостат и там посегментная индикация...вот с ней начались проблемы (на 4 индикатора развертка около 1 кГц). Помогла библитека для работы с 1-wire от Сапего Александра Леонидовича - все красиво сделано и замечательно работает.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
вроде бы я тут выкладывал свою "библиотеку" для 1-wire... не менее замечательно работает, прерывания сама запрещает, когда надо... и с посегментной, и с посимвольной и с любой индикацией...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Krik99
- Потрогал лапой паяльник
- Сообщения: 375
- Зарегистрирован: Вс мар 04, 2007 13:14:25
- Откуда: Украина
- Контактная информация:
Извените если я не в тему, но всё таки. Вот написал недавно программу на Си для термометра на МК ATtiny233 который работает с датчиком ds18b20. Термометр работает нормально, а вот захотел недавно переделать программу в терморегулятор и вроде всё работает нормально, а вот когда температура заданная "плюсовая" и измеряемая тоже "плюсовая", то сравнение работает нормально. Сравнение должно работать так, если измеряемая температура больше чем заданная, то должен загорется светодиод, а если менше чем заданная, то светодиод должен погаснуть. Так вот при плюсовой всё нормально, а если там минусовая ,а там плюсовая, или наоборот, или там минусовая и там минусовая то сравнение не работает. Вот может поможете. За ранние благодарю.
- Вложения
-
- termoregulator.rar
- (19.84 КБ) 461 скачивание

- Mozart
- Мучитель микросхем
- Сообщения: 413
- Зарегистрирован: Пт мар 10, 2006 12:23:05
- Откуда: Moscow
- Контактная информация:
я не смотрел вложенную папку... но могу сказать что у тебя просто не правильно работает сравнение
а именно в миносовой температуре старший бит = 1, а при плюсовой старший бит = 0. пример
0b1111111 - минусовая
0b0111111 - плюсовая
что больше??
можно попробовать сделать следующее, просто "-" приводить к "+" и сравнивать с "+". также и с "-" только наоборот.
а именно в миносовой температуре старший бит = 1, а при плюсовой старший бит = 0. пример
0b1111111 - минусовая
0b0111111 - плюсовая
что больше??
можно попробовать сделать следующее, просто "-" приводить к "+" и сравнивать с "+". также и с "-" только наоборот.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Krik99 писал(а):Да мне желательно на Си. Так как я начинающий и не очень понимаю все эти "выкрутасы". Так как был на нескольких форумах, и не кто не дал нормального совета, вот решил спросить тут.
Посмотри здесь, прога точно работает, у меня аквариум охраняет
- Вложения
-
- TCONTR.rar
- (82.58 КБ) 591 скачивание
- Mozart
- Мучитель микросхем
- Сообщения: 413
- Зарегистрирован: Пт мар 10, 2006 12:23:05
- Откуда: Moscow
- Контактная информация:
чтобы получить отрицательное число надо... надо посмотреть в книге. по ассемблеру или в инете поискать. это первое.
второе, надо чуть раскинуть свой мозг, чтобы ответить на свой вопрос.
я вижу себе этот алгоритм следующим образом.
если заданная температура положительна.
Если полученная температура отрицательна, делаем из неё положительную, иначе ничего не делаем
сравниваем с заданной если полученная больше чем заданная зажигаем лампочку
если заданная температура отрицательна.
если полученная температура положительна перводим её в отицательную, если отрицательна ничего не делаем
сравниваем если полученная меньше заданной зажигаем лампочку.
второе, надо чуть раскинуть свой мозг, чтобы ответить на свой вопрос.
я вижу себе этот алгоритм следующим образом.
если заданная температура положительна.
Если полученная температура отрицательна, делаем из неё положительную, иначе ничего не делаем
сравниваем с заданной если полученная больше чем заданная зажигаем лампочку
если заданная температура отрицательна.
если полученная температура положительна перводим её в отицательную, если отрицательна ничего не делаем
сравниваем если полученная меньше заданной зажигаем лампочку.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!