Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



I2C CLOCK+ALARM

Сообщений 211 страница 240 из 300

211

Andrusha написал(а):

А таймер у Вас очень долго находится в выключенном состоянии.

в основной программе или подпрограмме опроса датчика?

Andrusha написал(а):

а будет выполнять код дальше. А дальше у нас обнуление Tmp

не, обнуление идет после возвращения из подпрограммы. иначе никогда б температура на индикатор не вывелась бы, а она выводится

0

212

IDok написал(а):

не, обнуление идет после возвращения из подпрограммы. иначе никогда б температура на индикатор не вывелась бы, а она выводится

Ну я не знаю, в Вашем проекте у меня выводится -0,0с и индикатор начинает сильно мерцать.

0

213

Код:
Toggle Portb.7
Waitms 500
Portb.7 = 0                                                 'точка-разделитель времени

Вот эта кака вызывает мерцание индикатора при включении точки. Вы на 0,5 сек приостанавливаете выполнение программы.

0

214

Andrusha
если убрать задержки - получится вообще феерично. проект же у вас - попробуйте.
сходу вопрос - так ли необходимо так часто запрашивать данные с 1307? и нужна ли задержка в 750мс в подпрограмме термодатчика?

0

215

Задержка 750 мс необходима. Это время для преобразования полученных данных в цифровой код. Да, я пробую но легче написать новый код, чем переделывать старый.

0

216

Andrusha написал(а):

но легче написать новый код, чем переделывать старый.

да мне бы хотелось с этой разобраться

0

217

IDok написал(а):

да мне бы хотелось с этой разобраться


Зачем ломать голову над чужими ошибками (мысли вслух).

0

218

sasha_1973 написал(а):

Зачем ломать голову над чужими ошибками (мысли вслух).

ну как ошибками... это рабочий девайс с первой страницы. один экземпляр я уже собрал, правда на одном индикаторе. работает нормально. хотелось хитро извернуться и малой кровью приколхозить второй индикатор и выйти в дамки. и на засаду не рассчитывал...

0

219

8 разрядов 7-seg led + ds18b20 + ds1307. На одном индикаторе часы, на другом температура. Кнопок нет.

Симуляция (Протеус 7.10) + исходник (Bascom 2.0.7.1)  -  скачать

Исходник универсальный ОА и ОК
полярность выбирается здесь:
'===============================================================================
'       Настройка исходника под используемый тип 7-seg LED индикаторов
'===============================================================================
  Const Const_количество_разрядов = 8
  Const Const_tip_7seg_led_indikatora = 0       ' Если 0 - ОА, если 1 - ОК

Период опроса ds18b20 здесь:
Период_опроса_ds18x20 = 0  - оптимально 10 сек

Картинки

http://s0.uploads.ru/t/RFVLw.jpg

+2

220

Andrusha написал(а):

но легче написать новый код, чем переделывать старый.

+100500
Можно еще добавить "учитывая положительные моменты предыдущих решений"... ;)

0

221

кому и легче, а кому еще нет

0

222

IDok написал(а):

кому и легче, а кому еще нет

Так никто же не призывает начинать все с чистого листа.
Есть уже готовые наработки по работе с периферией и пр.
Есть уже готовые "блоки", которых можно надергать из других исходников, если они имеются в открытом доступе.
И складывайте (связывайте) эти "кирпичики", как вам надо...
Этим не гнушаются даже маститые программисты...

Можно подумать, что кто-то на пустом листе набивает код обработки DS18B20... ;)

Отредактировано Nord (2017-10-22 21:41:19)

+1

223

IDok написал(а):

кому и легче, а кому еще нет

Ваш код переделать вообще не реально. Постараюсь завтра выложить код своих часов, переделанных как Вам надо. Порты переназначать будете сами. Проект Протеуса у вас то же кривой. В фьюзах контроллера включен WATCHDOG, у DS1820 отсутствует PULLUP. И ключи на индикаторы зря навесили. Для симуляции они никакой роли не играют, а систему тормозят страшно. Протеус вообще страшно тормозит компьютер, и поэтому, чем проще проект, тем лучше.

+1

224

Andrusha написал(а):

чем проще проект, тем лучше


Золотые слова !

Добавлю от себя:

Для правильной работы ds18b20 в Протеусе, используйте только цифровой резистор. Как правильно заметил Andrusha, pullup или в свойствах любого резистора нужно выбрать

http://s7.uploads.ru/t/RfG9h.jpg

Старайтесь не использовать повышенные частоты работы МК. В 99% случаев, достаточно 1МГц, что в свою очередь сильно разгрузит компьютер. Максимально замещайте аналоговые элементы цифровыми.

0

225

Nord написал(а):

И складывайте (связывайте) эти "кирпичики", как вам надо...

вот! вот тут собака и порылась! это ж надо знать - как надо :)

Andrusha написал(а):

Ваш код переделать вообще не реально

он не мой! он здешний....

0

226

IDok написал(а):

вот! вот тут собака и порылась! это ж надо знать - как надо

Лучше посредством GoSub, как мы уже это ранее... ;)

0

227

Nord написал(а):

Лучше посредством GoSub

дык, уже  :dontknow:
получилось что:
из главного цикла все убрано в подпрограммы, подпрограмма вывода на индикаторы так вообще "типовая". обработка 1307 - тоже "кирпичик". что и где подвисает - а хрен его знает

0

228

таак. разобрался, почему не светили оба индикатора хором. дело, как всегда, было не в бобине. ща буду проверять код Александра (без кнопок и даты :) )

0

229

sasha_1973
проверил вашу последнюю программу в железе. ну, мигания действительно нет и яркость получше. но почему-то вместо часов\минут выводятся минуты\секунды. т.е. идет постоянный отсчет секунд. хотя в протеусе все норм

0

230

IDok, вот что получилось у меня. Только почему то при первом переключении дата-температура высвечивается -Err. Но, я думаю это не критично. В остальном, в Протеусе, работает как часы. Пробуйте. Тыц

0

231

Andrusha
спасибо, гляну. порты вы мне канеш перепутали, надо перепутать взад :)
вот кстати, благородные доны. как только я в протеусе убрал транзисторы с анодов - так все мигания прошли. каг таг?

0

232

А я о чем недавно писал? Ставите транзисторы, будьте добры резисторы в базы воткнуть. И вообще Протеуса хорошо в меру. Были случаи, прошивка, работающая в Протеусе, отказывалась работать в железе и наоборот.

0

233

Andrusha написал(а):

А я о чем недавно писал?

ну вот я и внял! :)
думаю, мож в аноды ULNку вонзить? а то на больших индикаторах яркость приподнять хоцца. ну или полевики. только в прошивке надо будет аноды инвертировать

0

234

Да что Вы прицепились к этим ULNкам. Вам их девать некуда? На маленькие индикаторы подайте +5 со схемы, а на большие 6-7 вольт со второго блока питания. И будет Вам счастье. Код заработал?

0

235

хитрый ход. вместо ключей - второй блок питания.

Andrusha написал(а):

Код заработал?

еще симуляцию не переделал.

0

236

IDok написал(а):

хитрый ход. вместо ключей - второй блок питания.

Зато совсем негеморройный с точки зрения прошивки... ;)

0

237

Andrusha написал(а):

Код заработал?

заработал. вроде нормально. кнопки, переключения, все дела. единственно - при настройке дата выводится на том же индикаторе, что и время. в моей прошивке по другому. но это не критично. спасибо за помощь. я еще помучаю свою поделку и если недопобедю - залью Вашу.  :cool:

0

238

Nord написал(а):

Зато совсем негеморройный с точки зрения прошивки

а прошивке есть дело, откуда запитан транзистор? ;)

0

239

Andrusha
два вопроса:
для чего в главном цикле цикл на 40 оборотов и где в программе вызов подпрограммы термометра. переменную Q вижу, а где ее значение отличное от 0 - нет :(

0

240

IDok написал(а):

для чего в главном цикле цикл на 40 оборотов :(

Это чтобы при включении не высвечивались нули.

Код:
Bootons:
Incr Q
If Q > 106 Then Gosub Termometr
Stop Timer1

Это по второму вопросу. Число 106 ваше, можно поставить любое.

0