Easyelectronics.ru

Электроника для всех
Текущее время: 16 окт 2019, 07:39

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 11:30 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
http://radiokot.ru/circuit/digital/home/54/
не идут часы
предполагаю что нет библиотеки для 1307 в исходниках
в чём причина и что делать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 11:53 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
компилили сами, или прошили готовый хекс?
библиотека для 1307 в архиве есть
Прчин - вагон может быть: не завелся кварц, сопля при пайке, битая 1307...

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 12:53 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Финский писал(а):
компилили сами, или прошили готовый хекс?
библиотека для 1307 в архиве есть
Прчин - вагон может быть: не завелся кварц, сопля при пайке, битая 1307...

видать библиотека влючена в code.asm
часы идут
прошивал готовый
причина-негодный резонатор
вопрос
как сделать в еепром запись дней недели на русском (знакоместа справа от температуры)?
винстар wh1602a есть поддержка кириллицы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 13:03 
Старожил
Аватара пользователя

Зарегистрирован: 04 сен 2010, 23:09
Сообщения: 3639
Откуда: Армения
Там-же на форуме подробно обсуждены возможные причины. Почему-бы не изучить сначала эту тему...
Оттуда
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 13:18 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
Зачем дни недели писать в еепром?
сделать массив во флеше с кодами символов кириллицы, и дописать вывод на экран.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 13:19 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
SSh писал(а):
Там-же на форуме подробно обсуждены возможные причины. Почему-бы не изучить сначала эту тему...

вопрос
как сделать в еепром запись дней недели на русском (знакоместа справа от температуры)
часы работают


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 13:25 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Финский писал(а):
Зачем дни недели писать в еепром?
сделать массив во флеше с кодами символов кириллицы, и дописать вывод на экран.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 13:52 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4096
Откуда: г. Липецк
Bash наверное упоминание что мы тоже не пальцем деланы, мы с Линуксом дружим. Только это здесь не поможет.
Ассемблерные исходники прекрасно документированы, добавляй/изменяй что хочешь...
А помочь? В смысле переписать? Дописать и т.д.?
Это в "Надо разработать".
Если хотите чтобы вам помогли, представте свои листинги с попыткой решения...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 18:55 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Show

.org 0 - откуда это
компилируется и не работает
как бы библиотека
Show

что то о днях недели ничего не пишут


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 22:35 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
вроде несложно для программиста поправить код, но никто помогать не хочет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 06 авг 2016, 22:38 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
Задаром - естественно, никто и не пошевелится.
Своими силами не получается - переносим тему в "Надо разработать", озвучиваем бюджет, сроки, требования.
или же вкуриваем в ассемблер, и пытаемся сами, с подробным разбором - что не получается, как не получается, куда копать дальше.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 00:49 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
Финский писал(а):
Задаром - естественно, никто и не пошевелится.
Своими силами не получается - переносим тему в "Надо разработать", озвучиваем бюджет, сроки, требования.
или же вкуриваем в ассемблер, и пытаемся сами, с подробным разбором - что не получается, как не получается, куда копать дальше.

у нас кадио с большим жк экраном 160 руб
1602 заказывал 3 штуки без отслеживания на экспресе - ни один не дошёл
а получил с нормальной доставкой 1жк, но стоит как 3
эти часы-поделка обошлись мне примерно 1450
в нашем магазине тинка стоит 250р
температурный датчик вообще 230р???

судя по интернету часы повторило не более 10 чел
озвучиваем бюджет, сроки, требования-это о чём?
я их делаю для практического изучения avr


Последний раз редактировалось moto261 07 авг 2016, 01:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 01:04 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
Show

Вот куда-то сюда нужно добавить вывод двух байт из массива
Цитата:
Код:
;Здесь то как обзываются дни недели
;    П     н      В   т    С     р      Ч   т    П     т      С   б    В     с
.db 0xA8,0xBD,0x42,0xBF,0x43,0x70,0xAB,0xBF,0xA8,0xBF,0x43,0xB2,0x42,0x63
соответствующих текущему дню недели. Текущий день недли хранится в .dseg

clock: .byte 7 ; сек, мин, часы, день нед, число, месяц, год

обращение к переменной дня недели:
lds Temp, clock+3 ;возьмем день недели

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 01:09 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
спасибо за подсказку

; Вывод "градусов Цельсия"
ldi simv,0
rcall Writes
ldi simv,0x43
rcall Writes

ldi simv,0x20
rcall Writes
ldi simv,0x20
rcall Writes
ldi simv,0x20
rcall Writes

no_print:

lds Temp, clock+3 ;возьмем день недели
rcall bcdout ;преобразование и вывод двоично-десятичного кода 0000-1001(1 байт) будут числа 00-06?
;как связать с массивом?

ret


.............................................................................

;Здесь то как обзываются дни недели
; П н В т С р Ч т П т С б В с
.db 0xA8,0xBD,0x42,0xBF,0x43,0x70,0xAB,0xBF,0xA8,0xBF,0x43,0xB2,0x42,0x63

по кодовой таблице жк

db 0xA8,0xBD,0x42,0xBF,0x43,0x70,0xAB,0xBF,0xA8,0xBF,0x43,0xB2,0x42,0x63 массив как и куда правильно вставить?
db define byte, определить байт обычно заносят в еепром
например
.org $08 Установить положение в сегменте в шеснад числе, сегмент 0x08
.db $0E ;$00,$FF,$FF,$FF,$FF
.db $65 ;
.db $2C,$65
.db $09


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 04:15 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4096
Откуда: г. Липецк
В EEPROM ничего заносить не надо (обычно). Кодовые таблицы хранятся во Flash (обычно). Это кодовый сегмент.
EEPROM используется для хранения настроечных переменных, которые могут меняться во время эксплуатации...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 10:48 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
Код:
;=============================================================
; сегмент кода - программа
;=============================================================
.dseg

   clock:   .byte   7   ; сек, мин, часы, день нед, число, месяц, год
;Здесь то как обзываются дни недели
; П н В т С р Ч т П т С б В с
weekday_tab: .db 0xA8,0xBD,0x42,0xBF,0x43,0x70,0xAB,0xBF,0xA8,0xBF,0x43,0xB2,0x42,0x63 ;

Да забудьте вы про ЕЕПРОМ. вот так размещается таблица дней недели в сегменте FLASH.
Дни недели читаются из 1307 в виде десятичного числа 1-7. Хранится это число в clock+3.
Вывести это число на экран в виде двух букв дня недели:
Код:
lds temp, clock+3; теперь в temp находится число, соотв. дню недели
dec temp; тк первый байт массива букв имеет смещение 0, а первый день недели начинается с 1, то уменьшаем temp на единицу.
// или же можно добавить в начало массива байт-пустышку 0x00 и предыдущую команду не выполнять
lds simv, weekday_tab+temp; загружаем в simv первую букву тек. дня недели (со смещением на temp)
rcall Writes; выводим на экран
inc temp; увеличиваем temp на единицу, чтобы взять вторую букву
lds simv, weekday_tab+temp; берем вторую букву из массива
rcall Writes; выводим на экран

Как-то так. мои познания в асме довольно ограничены, насчет lds simv, weekday_tab+temp; не уверен, прокатит ли суммирование. Возможно, придется суммирование сделать через отдельный регистр.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 11:30 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
вообще то вывод дня недели это не просто
расчёт дня недели даже делают по формуле из даты, хотя для 1307 есть программный код вывода
спасибо, буду прошивать в ближайшие дни, пока экспериментировать не могу по техническим причинам


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 11:38 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
facepalm.jpg
Так будем мудрить с формулами из даты, или нафига нам вообще 1307?

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 12:02 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
озабочен тем что памяти во флэше мало , поэтому что то спихнуть в ееп
но это не важно
надо разобраться с кодом
Show

C:\Users\12\Downloads\01 (2)\code.asm(246): error: syntax error, unexpected REGDEF
lds simv, weekday_tab+temp; загружаем в simv первую букву тек. дня недели (со смещением на temp)

про weekday_tab много на с, а надо на асме


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 12:45 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
вспомнил: адрес во флеше двухбайтный, поэтому выборку из массива символов нужно делать через индексные регистры

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 13:07 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
; сегмент кода - программа
;=============================================================
.dseg

clock: .byte 7 ; сек, мин, часы, день нед, число, месяц, год
weekday: .byte 2
;Здесь то как обзываются дни недели
; П н В т С р Ч т П т С б В с
.db 0xA8,0xBD,0x42,0xBF,0x43,0x70,0xAB,0xBF,0xA8,0xBF,0x43,0xB2,0x42,0x63
.cseg
.org 0 ; старт
я полагаю что регистр сегмента день нед занимает байт
byte 7 если секунды не нужны
http://www.radiokot.ru/start/mcu_fpga/avr/12/


Последний раз редактировалось moto261 07 авг 2016, 13:53, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 13:51 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4096
Откуда: г. Липецк
Префикс .dseg подразумевает что следом за ним идет сегмент данных, т.е. ОЗУ.
Поэтому процедура начальной инициализации должна настроить порты и регистры контроллера, ну и инициализировать ОЗУ.
Смысла нет, чем инициализировать .dseg из .сseg, лучше напрямую использовать константы из .сseg.
P.S. Может вместо .dseg должно стоять .сseg?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 07 авг 2016, 21:56 
Старожил

Зарегистрирован: 23 фев 2016, 22:10
Сообщения: 750
возможно у программистов дни недели в часах что то неподъёмное
просто не используются возможности 3107
картинок с днями мало, и то видимо на математике сделаны
; рабочие регистры, используемые для отработки алгоритма

.def Temp = r18
.def Temp1 = r19
.def Temp2 = r20
.def button = r22
.def Simv = r23
.def Kur = r24
здесь нормально

; сегмент данных - вспомогательные ячейки
;============================================================

setRAM:
;SRAM старший байт адреса SRAM=0x01
.equ Sek = 0x10 ;текущие сек BCD -значение
.equ Min = 0x11 ;текущие мин
.equ Hour = 0x12 ;текущие часы
.equ Date = 0x13 ;текущая дата
.equ Month = 0x14 ;текущий мес
.equ Year = 0x15 ;текущий год
а здесь дней недели нет
и если просто
lds Temp, clock+3; теперь в temp находится число, соотв. дню недели
rcall bcdout ;преобразование и вывод двоично-десятичного

ret
то часы идут в разнос, те на кнопки выдают ерунду
втч и дни недели - какие запросы такие ответы

// формула для вычисления дня недели по дате (ru.wikipedia.org)
// a = (14 - месяц) / 12
// y = год - a
// m = месяц + 12 * a - 2
// ДеньНедели = (7000 + (день + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) ОСТАТОК 7
Show


Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 08 авг 2016, 23:03 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 1685
Откуда: Докучаевск-Волноваха
Цитата:
где - dayOfWeek - число от нуля до 7, соответсвует дню недели
(0 - вс,1-пн, ...)

Что за ересь?
0 - вс,1-пн, ... 2-вт, 3-ср, 4-чт, 5-пт, 6-сб, 7- ??? Снова воскресенье :)

Вы даташит на 1307 открывали? какой смысл использовать микросхему реального времени, если дни недели считать по датам?

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часы, календарь, термометр
СообщениеДобавлено: 09 авг 2016, 11:03 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:48
Сообщения: 3965
Откуда: Звенигород
Я день недели считал для начального задания значения при изменении даты. 1307 сама ведь день недели не вычисляет.

_________________
От Парижа до Находки с водкой лучше, чем без водки!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB