регистр сдвига 595 и DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

Ребят подскажите плиз! Вот подключил к атмеге 8 регистры сдвига для индикатора 7-сегментного. Значение переменной показывает нормально, и кнопкой ее увеличиваю всё норм показывает, а вот значение температуры с датчика показывает но еще куча левых цыфр мелькает. У меня 10 цифр. 2 регистра цифры отображают а один на 8 сегментов, использовано 10 портов МК и всё это(управление регистрами) в прерывании от таймера 0 по переполнению. Подскажите что может быть не так. Если надо код скину..... а то чет я заблудился...
И второй вопрос попутно. Я хочу одновременно на 25 цифрах видеть значение штук 8 датчиков температуры. Это же через регистры сдвига не проблема для атмеги 8??? Просто время для оцифровки надо поочереди для датчиков.
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Мастер Ломастер »

1. из ваших рассказов можно сделать вывод - что-то у вас не так в программе. подсказка помогла?
2. для меги 25 сдвиговых регистров не проблема, не проблема и 50, проблема может быть в конструкции, т.е. схеме/плате
3. что значит - поочереди для датчиков? можно и одновременно...
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

поочереди это я дословно сказал имея ввиду что микруха последовательно ж будет считывать температуру с датчиков :). Если я скину код чтоб бегло глянуть подскажите? а то уже 2 дня мучаюсь ))) забурился совсем....
Вложения
hc595.c
(20.02 КБ) 437 скачиваний
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Мастер Ломастер »

я бегло посмотрел - первые 30-40 строк кода вселили в меня уверенность, что вы хоть и начинающий, но движитесь в верном направлении - видна попытка структурировать алгоритм при помощи функций, осмысленное использование массивов... но остальные строки впечатление испортили :(

если вы перепишите последних 75% строк вашего кода в том же стиле, как и первые 25%, очень вероятно, что вы сами поймете, в чем там у вас беда. ваш код - это нагромождение несуразностей, разбираться в которых у еня лично желания нет - наведение порядка это ведь ваша задача, не так ли?

намекаю: выдача в регистры данных - это задача, которая требуется часто. т.к. регистр 8-битный, есть смысл выводить по 1 байту. а количество регистров определит количество выводимых байтов.

и постарайтесь не делать лишнего - ваш метод вывода числа несколько шокирует...
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Эиком - электронные компоненты и радиодетали
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

хммм... понятно что там бардак..... попробую чуть позже навести порядок..... но думаю будет сложно... Через оператор CASE правильно я выводил данные на регистры или лучше както через массив??? Я просто не могу чуток понять как правильно сделать массив и какой ширины... и не пойму как его использовать..... Один регистр выдает число на индикатор а два другие светят 10 цифр..... мож кто еще намекните плиз пока я поковыряюсь в своем мусорнике ))
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Мастер Ломастер »

10 индикаторов - массив из 10 элементов. надо изменить 3-й и 4-й индикаторы - изменяете содержимое массива в ячейках 3 и 4 соответственно, выводите всегда все 10 элементов на все 10 индикаторов.
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

сделал схему на регистрах 3 провода. Любые числа показывает нормально, а температуру с датчика с помехами. Что может быть? Индикация по прерыванию от таймера. Кондеры на питании есть
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Мастер Ломастер »

miwutka07 писал(а):сделал схему на регистрах 3 провода. Любые числа показывает нормально, а температуру с датчика с помехами. Что может быть? Индикация по прерыванию от таймера. Кондеры на питании есть
экстрасенсы все ушли на "битву экстрасенсов", без кода ничем помочь не можем
битва с дураками проиграна, победители торжествуют. слава победителям!
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

и чего вы все "великие гении" только острить и обсуждать умеете. Что на казусе что тут только критики а не спецы..... вот код. схему ща пытаюсь в протеусе нарисовать.... если смогу.
Вложения
hc595 - копия.txt
(19.03 КБ) 297 скачиваний
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Мастер Ломастер »

miwutka07 писал(а):и чего вы все "великие гении" только острить и обсуждать умеете. Что на казусе что тут только критики а не спецы.....
смею вас заверить, что ваши слова достигли цели - пропало желание помочь вам. удачи!
Последний раз редактировалось Мастер Ломастер Пт фев 10, 2012 20:56:47, всего редактировалось 1 раз.
битва с дураками проиграна, победители торжествуют. слава победителям!
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

не сомневаюсь ))))) еще ни одна проблема не была именно вами решена )) а только другими многоуважаемыми пользователями :) для них через 15 минут скину фото. Чтобы получить уважение вопреки критике надо его заслужить а не критиковать со старта.
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

Схемка, если кто осилит :)
Вложения
Image 1.gif
(201.41 КБ) 467 скачиваний
Последний раз редактировалось miwutka07 Пт фев 10, 2012 21:13:06, всего редактировалось 1 раз.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: регистр сдвига 595 и DS18B20

Сообщение hybroid »

miwutka07 писал(а):Чтобы получить уважение вопреки критике надо его заслужить а не критиковать со старта.
Хороший совет. Сами бы им и воспользовались :)))
Аватара пользователя
Shapa
Встал на лапы
Сообщения: 127
Зарегистрирован: Пт июн 20, 2008 09:38:05
Откуда: Харьков
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Shapa »

miwutka07 писал(а):сделал схему на регистрах 3 провода. Любые числа показывает нормально, а температуру с датчика с помехами. Что может быть? Индикация по прерыванию от таймера. Кондеры на питании есть
Вот она! Вот она рыба моей мечты! (С) =)
Сталкивался сам с этой проблемой кучу-кучу раз. Индикация по прерыванию, допустим идёт считывание данных с датчика и тут БАЦ - прерыване, данные с датчика считаны не верно.... на момент обработки данных от датчика - отключайте прерывания и я думаю у вас всё получится
miwutka07 писал(а):Схемка, если кто осилит :)
а на счёт схемки, у вас несколько датчиков и много свободныхног контроллера, может быть, проще выдать каждому датчику по своей ноге?
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

Shapa писал(а):
miwutka07 писал(а):сделал схему на регистрах 3 провода. Любые числа показывает нормально, а температуру с датчика с помехами. Что может быть? Индикация по прерыванию от таймера. Кондеры на питании есть
Вот она! Вот она рыба моей мечты! (С) =)
Сталкивался сам с этой проблемой кучу-кучу раз. Индикация по прерыванию, допустим идёт считывание данных с датчика и тут БАЦ - прерыване, данные с датчика считаны не верно.... на момент обработки данных от датчика - отключайте прерывания и я думаю у вас всё получится
А подскажите плиз как глобально их отключить?:)
#asm("sei") - это включает, а выключает как? :)
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

у меня все эти ноги будут заняты потом другими устройствами, ну входы и выходы будут...
Аватара пользователя
Shapa
Встал на лапы
Сообщения: 127
Зарегистрирован: Пт июн 20, 2008 09:38:05
Откуда: Харьков
Контактная информация:

Re: регистр сдвига 595 и DS18B20

Сообщение Shapa »

miwutka07 писал(а): #asm("sei") - это включает, а выключает как? :)
#asm("cli") ; - выключаем
miwutka07 писал(а):у меня все эти ноги будут заняты потом другими устройствами, ну входы и выходы будут...
ну, если у вас и так всё работает, то хорошо. Я никогда не пробовал вешать на 1 ногу несколько датчиков, потому и предположил, что с 1 линией могут быть коллизии
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: регистр сдвига 595 и DS18B20

Сообщение ploop »

И второй вопрос попутно. Я хочу одновременно на 25 цифрах видеть значение штук 8 датчиков температуры. Это же через регистры сдвига не проблема для атмеги 8???
В динамике может быть слабая яркость индикаторов. Я бы сделал статическое отображение, но это сильно усложнит схему. Однако разгрузит МК.
Просто время для оцифровки надо поочереди для датчиков.
Время остаётся прежним - 1 секунда. Запускаете по очереди оцифровку, ждёте секунду, считываете так же по очереди данные. Время передачи/приёма для 8 датчиков будет в районе десятков миллисекунд, т.е. не заметно ан глаз, как будто один работает.
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

ploop писал(а):
И второй вопрос попутно. Я хочу одновременно на 25 цифрах видеть значение штук 8 датчиков температуры. Это же через регистры сдвига не проблема для атмеги 8???
В динамике может быть слабая яркость индикаторов. Я бы сделал статическое отображение, но это сильно усложнит схему. Однако разгрузит МК.
Просто время для оцифровки надо поочереди для датчиков.
Время остаётся прежним - 1 секунда. Запускаете по очереди оцифровку, ждёте секунду, считываете так же по очереди данные. Время передачи/приёма для 8 датчиков будет в районе десятков миллисекунд, т.е. не заметно ан глаз, как будто один работает.
всё работает только левые цифры проскакивают. Сейчас попробую прерывания отключать.....
miwutka07
Открыл глаза
Сообщения: 60
Зарегистрирован: Вт авг 24, 2010 17:07:25

Re: регистр сдвига 595 и DS18B20

Сообщение miwutka07 »

не, прерывания нельзя отключать. У меня тогда бег огонь из цифр получаеться. Сделал вручную по 550 мс паузы. И всеравно проскакивают медленно
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»