Часы на PIC16F628
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 13:25 | Сообщение # 151 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Quote (xaker-sss) Не вьеду я все равно... Правильно!!! Эта подпрограмка это и делает!!!! Она при первом вкл МК записывает это значение, потом используется только Kor_Clock...Добавлено (20.07.2012, 13:25) --------------------------------------------- Или Вы этот код взяли из Korr:??? Тогда тут немного другое!!!! Вы изменяете значение Kor_Clock, а потом записываете его в память МК и все!!!! При отключении питания, у Вас уже записано в нулевой области памяти единица!!!!, при вкл питания, МК считывает значения из этой обл!!!! и если там не единица, значит, либо это первое вкл, либо прошел сбой и нужно записать по адресу 1 значения 4000...
З.Ы. С меня объяснитель плохой ... Мне проще написать программу, чем объяснить как она работает...
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 13:28 | Сообщение # 152 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Но как же так, я вхожу в подпрограму у меня выполняется Kor_Clock = 4000 присвоили EWrite 1, [Kor_Clock] записали, записано 4000 а если там до этого уже производилась корректировка к примеру там было 3800 то мы его потеряли
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 13:38 | Сообщение # 153 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Без обид!!!!!!!!!!!!!!!! Вы можете читать код??? Добавлено (20.07.2012, 13:35) --------------------------------------------- Программный код - как книга!!!! Ее (его - код) - нужно читать с начала, а не с того места, с которого захотелось Вам!!!! Если Вы обратили внимания (если мы говорим о начале программы!!!!) то там стоит условие!!! Если мы говорим о "Korr:", то там почти тоже самое!!! Вы изменяете переменную "Kor_Clock" и после этого записываете ее в память, а чтобы МК при вкл понял, что Вы записали значения и его нужно считать, есть нулевая часть EPROM-а. в которую мы записали единицу... Добавлено (20.07.2012, 13:38) --------------------------------------------- Я не знаю, может баг со шрифтами и у Вас вместо надписи "кракозяблы", то там должна быть эта надпись "' ' Kor_Clock = 4000 ' тут вместо 4000 записываете свое число", такое бывает...
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 13:44 | Сообщение # 154 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Все разобрался сам, сделал так, в начале программы после MAIN: Kor_Clock= LRead LABEL а в самом конце кода LABEL: LData 4000 Фу наконец-то.
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 13:47 | Сообщение # 155 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Зачем так??? У Вас в "LABEL: LData 4000" будет всегда 4000!!!! Чем Вас не устроил мой код??? Там все верно и 100% рабочий!!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 14:35 | Сообщение # 156 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Quote (Matrix252005) Зачем так??? У Вас в "LABEL: LData 4000" будет всегда 4000!!!! А что его изменить нельзя из программы.
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
ivan_fd |
Дата: Пт, 20.07.2012, 14:45 | Сообщение # 157 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Нет, Вы его не измените. Пишите в Еепром, как Вам и советовали.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 14:52 | Сообщение # 158 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Quote (ivan_fd) Пишите в Еепром, как Вам и советовали. Но не пойму я как писать.
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 14:59 | Сообщение # 159 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Я же Вам уже все готовое скинул!!!!! Единственное, добавьте изменение Kor_Clock и все... Добавлено (20.07.2012, 14:59) --------------------------------------------- Как ВЫ собирались изменять "Kor_Clock"??? пропишите это в той процедуре и выложите тут, а я Вам допишу... Единственное условие, допишите в моем коде!!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 15:13 | Сообщение # 160 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Пимерно так, но пока не работает Code Korr: For A =0 To 6500 If ButtMin=1 Then Inc Kor_Clock DelayMS 200 If ButtHour =1 Then Dec Kor_Clock DelayMS 200 If ButtSec =1 Then GoTo loop EndIf DigitDisp = Kor_Clock Dig 0 PORTA = %00000001 GoSub LOOK
DigitDisp = Kor_Clock Dig 1 PORTA = %00000010 GoSub LOOK
DigitDisp = Kor_Clock Dig 2 PORTA = %00000100 GoSub LOOK
DigitDisp = Kor_Clock Dig 3 PORTA = %00001000 GoSub LOOK Next GoTo loop
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 15:17 | Сообщение # 161 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Сейчас проверю!!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 15:30 | Сообщение # 162 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
И еще в вашей прошивке надо в процедуре Secund поставить код Code If ButtMin = 1 Or ButtHour = 1 Then If SECOND>30 Then Inc MINUTES SECONDS = 0 что-бы обнулять секунды И желательно всю процедуру всунуть в FOR NEXT как у меня чтоб через минуту возвращалось к показанию времени.Добавлено (20.07.2012, 15:30) --------------------------------------------- Нет не FOR NEXT а лучше
While ....................... Wend просто она у меня не работала, в делфи она пишется While ....................... Until
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 15:41 | Сообщение # 163 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Я немного изменил Ваш код, теперь он работает!!! Пробуйте!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
xaker-sss |
Дата: Пт, 20.07.2012, 15:47 | Сообщение # 164 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
BIG2 WORD да
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
Matrix252005 |
Дата: Пт, 20.07.2012, 15:50 | Сообщение # 165 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Еще, проглядел, добавьте в конце For A = 0 To 6500 .... Next , букву "А". У Вас должно быть "Next А" Добавлено (20.07.2012, 15:49) --------------------------------------------- Вы смотрели мою программу??? http://www.picbasic.ru/forum/5-1183-11107-16-1342775106 Добавлено (20.07.2012, 15:50) ---------------------------------------------
Quote (xaker-sss) BIG2 WORD да Нет DWord. BIG2 = 1000000 + Kor_Clock
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|