Приветствуем на Форум Херсона. Форум Херсонской молодежи.. На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру! Если возникнут проблемы с регистрацией напишите нам. |
|
Программирование Все вопросы по написанию программ |
|
Опции темы |
09.01.2016, 13:31 | #1 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Динамическая и статическая индикация на 7сегмент. и 74hc595
Хочу собрать часы с разными функциями на 7ми сегментных индикаторах,
atmega 168 и сдвиговых регистрах. В общем для отображения времени рассматриваю такой вариант через SPI: Код:
#include <spi.h> #define SS PORTB.2 typedef unsigned char byte; typedef unsigned long ulong; byte led_table[10]={0b00000011,0b10011111,0b00100101,0b00001101,0b10011001,0b01001001,0b01000001,0b00011111,0b00000001,0b00001001}; ulong show_data=12345678; //Отображаемая цифра ulong dig_data=0; byte dig_num=0; //Отображаемый разряд void show_dig() { SS=0; //Ни чего не кажем if (dig_num==0) { dig_data=show_data; //Если показываем первую цифру обнавляем переменную dig_num++; } spi(dig_num); //Отправляем байт для отображения разряда spi(led_table[dig_data%10]); //Получаем разряд из dig_data и отправляем байт с цифрой dig_data/=10; dig_num<<=1; //Смещаем бит для отображения следующего разряда SS=1; //Показываем разряд } void main(void) { PORTB=0; DDRB=0x2C; //Настраиваем порт для SPI ACSR=0x80; //Отключаем компаратор //Включаем SPI //Биты будем отправлять LSB-MSB, т.е. от младших к старшим SPCR=0x70; SPSR=0; while (1) show_dig(); //Показываем разряды } Как можно переделать данный код, чтобы выводить часы и минуты из 2х переменных? |
||||||||
|
12.01.2016, 15:15 | #2 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
Еще раз и помедленнее
И почему бы не использовать DS1307 например?
__________________
Какая разница из какого места растут руки, если они золотые. Последний раз редактировалось Debian, 12.01.2016 в 16:55. |
|
16.01.2016, 15:14 | #3 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Эту микросхему я и использую. Данные этой микросхемы берутся в двух переменных hour и minut. Как их прикрутить к этой функции?
|
||||||||
|
16.01.2016, 21:17 | #4 (Ссылка на пост) | |
Извините, я на тракторе!
Пол:
|
Цитата:
PHP код:
хотя можно и без ДСки обойтись, повешать часовой кварц как тактирование таймера, поставить пред делитель, и по переполнению таймера в прерывание делать все черные дела
__________________
Какая разница из какого места растут руки, если они золотые. |
|
|
16.01.2016, 23:04 | #5 (Ссылка на пост) | ||||||||
Щас сменю себе статус
Пол:
Благодарил(а): 3,810
Благодарили 4,360 раз в 1,818 постах
Галерея:
0
Вес репутации: 63
|
Debian, сдвигом на 4 бита ты не получишь десятки, почему бы просто не взять целую часть от деления. И функция получения времени вызывается на отрисовку каждого разряда, поэтому время может измениться и разряды будут показывать значения для разного времени.
|
||||||||
|
17.01.2016, 11:31 | #6 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Начало проекта вот, чтобы было более понятно о чём речь.
|
||||||||
|
17.01.2016, 14:02 | #7 (Ссылка на пост) | |
Извините, я на тракторе!
Пол:
|
это почему же? ааа....это не для ПК...сударь
Цитата:
Почесав затылок, юзер дописал через 1 минуту шо это за ересь?
__________________
Какая разница из какого места растут руки, если они золотые. |
|
|
17.01.2016, 16:58 | #8 (Ссылка на пост) | |||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Цитата:
4разрядный-время; 6 разрядный- дата, температура дом/улица, скорость ветра, влажность и др. Вот я на индикации и застрял. С ЖК было бы проще, но мы простых путей не ищим! |
|||||||||
|
17.01.2016, 18:10 | #9 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
так поставь уже все защелки в ряд...
и еще вопрос: зачем тебе тут динамическая индикация? у тебя куча свободных ног на контроллере, хотя если индикаторы есть... у 595 есть вывод /OE так что смело можно лепить все на одну шину...
__________________
Какая разница из какого места растут руки, если они золотые. |
|
17.01.2016, 19:05 | #10 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Еще надо кнопки посадить, датчик освещенности, ик приемник, модуль- говорилка.
|
||||||||
|
17.01.2016, 19:44 | #11 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
все кнопки - один вывод контроллера
датчик - один вывод контроллера ИК приемник? - один вывод контроллера говорилка - ХЗ шо это за фигня будет? ты сначала с наворотами определись, а дпльше уже камень под задачи подбирать надо
__________________
Какая разница из какого места растут руки, если они золотые. |
|
18.01.2016, 07:07 | #12 (Ссылка на пост) | |||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Цитата:
На схеме не дорисованы : анемометр + 1, датчик- влажности + 1, 1 выход шим, чтобы яркостью 6х разрядного индиктора в зависимости от времени суток управлять. |
|||||||||
|
18.01.2016, 10:27 | #13 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
Яркостью можно и так играться
__________________
Какая разница из какого места растут руки, если они золотые. |
|
19.01.2016, 01:09 | #14 (Ссылка на пост) | ||||||||
Забанен вапще
Благодарил(а): 4
Благодарили 4 раз в 4 постах
Галерея:
0
Вес репутации: 0
|
В другом проекте смотрел, человек использовал микросхему mp3 плеера (такие в китайских поделках стоят) Там все также. мп3 или вав на карте СД. На вход микросхемы задается номер трека и громкость. И комманды плей, стоп
|
||||||||
|
19.01.2016, 09:52 | #15 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Валяется у меня где-то схема от китайского плеера. Там контроллер китайский с I2c интерфейсом, только даташитов китайцы не дают на них.
|
||||||||
|
19.01.2016, 12:17 | #16 (Ссылка на пост) | ||||||||
Забанен вапще
Благодарил(а): 4
Благодарили 4 раз в 4 постах
Галерея:
0
Вес репутации: 0
|
Вот ссылку на статью нашел https://www.drive2.ru/l/7499184/
Вроде тут читал |
||||||||
|
19.01.2016, 17:39 | #17 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Китайцы, это уже прохавали, и стали готовые модули выпускать.
|
||||||||
|
20.01.2016, 18:12 | #18 (Ссылка на пост) | |||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Цитата:
|
|||||||||
|
20.01.2016, 21:24 | #19 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
и что конкретно не работает?
вообще у тебя или код неправильный или ты чего-то не договариваешь я тут набросал специально, у меня все работает и вообще правильнее делать прорисовку по прерыванию таймера, тогда играясь задержкой свечения сегмента можно управлять яркостью индикатора прямо в лоб! PHP код:
тогда можно сделать еще проще PHP код:
__________________
Какая разница из какого места растут руки, если они золотые. Последний раз редактировалось Debian, 21.01.2016 в 01:02. |
|
21.01.2016, 09:53 | #20 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
PHP код:
И как потом эту функцию прерываний выводить? |
||||||||
|
21.01.2016, 11:35 | #21 (Ссылка на пост) | |
Извините, я на тракторе!
Пол:
|
Цитата:
вот тебе проект ... смотри, изучай
__________________
Какая разница из какого места растут руки, если они золотые. |
|
|
21.01.2016, 16:00 | #22 (Ссылка на пост) | |||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
Цитата:
Компилятор ругается на ассемблерный файл, не нравится ему переменная min заменил на minut. Последний раз редактировалось ДмитрийТ, 21.01.2016 в 16:23. |
|||||||||
|
21.01.2016, 21:13 | #23 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
работает ?
__________________
Какая разница из какого места растут руки, если они золотые. |
|
Сказали Спасибо пользователю Debian за этот пост: | ДмитрийТ (22.01.2016) |
22.01.2016, 08:37 | #24 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
|||||||||
|
22.01.2016, 15:28 | #25 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
А что такое isp?
__________________
Какая разница из какого места растут руки, если они золотые. |
|
22.01.2016, 19:08 | #26 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
SPI - перепутал буквы местами.
|
||||||||
|
22.01.2016, 23:53 | #27 (Ссылка на пост) | |
Извините, я на тракторе!
Пол:
|
Цитата:
просто задвигаешь еще 6 байт перед 4мя байтами для часов и зажигаешь все... PHP код:
PHP код:
__________________
Какая разница из какого места растут руки, если они золотые. Последний раз редактировалось Debian, 22.01.2016 в 23:59. |
|
|
24.01.2016, 16:11 | #28 (Ссылка на пост) | ||||||||
Задержался
Пол:
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея:
0
Вес репутации: 10
|
А как по двумпроводам можно реализовать индикацию на 6 разрядов
Тут есть статья для 1го индикатора пример http://kalobyte.com/upravlenie-regis...i-indikatorami |
||||||||
|
24.01.2016, 18:43 | #29 (Ссылка на пост) |
Извините, я на тракторе!
Пол:
|
А смысл???
так как и написано в статье...
__________________
Какая разница из какого места растут руки, если они золотые. |
|
18.02.2016, 09:37 | #30 (Ссылка на пост) | ||||||||
Свой В Доску
Пол:
Благодарил(а): 183
Благодарили 265 раз в 146 постах
Галерея:
0
Вес репутации: 14
|
Если тема еще не умерла - попробуйте MAX7219.
Пользовался таким экранчиком ссылка. и яркость регулируется и не нужно грузить контроллер. только говоришь по какому адресу какую цифру зажечь и все. управлять тоже просто им - с пол пинка заводится, главное не забыть сказать микрухе "Display On"))) А если же будете использовать 595, то советую делать статическую индикацию, чтобы не мучать контроллер динамикой. Начинать с печатной платы. Уверен, что у Вас будет миллион перемычек, зато в протеусе все по порядку. У меня подключается так: Вроде запутано, но зато печатная плата выглядит так: Ну и в коде так: Код:
unsigned char byCharacter[12] = {0xEB, //0 0x81, //1 0x73, //2 0xD3, //3 0x99, //4 0xDA, //5 0xFA, //6 0x83, //7 0xFB, //8 0xDB, //9 0x00, //blank 0x10, //- } Последний раз редактировалось Lukas, 18.02.2016 в 10:11. |
||||||||
|
Сказали Спасибо пользователю Lukas за этот пост: | ДмитрийТ (20.03.2016) |