Часы на mikroB
|
|
retas |
Дата: Пт, 02.01.2009, 23:58 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Вот посчастливилось наткнуться на часики на Бейсике - думал вникну, поизвращаюсь но... Мож спецы попробует у себя запустить и подскажут что где подправить? http://www.micro-examples.com/public....ck.html
|
|
|
|
Yrok |
Дата: Вт, 06.01.2009, 10:45 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Привет! Так ты сам пробовал запускать или нет??? Так вроде все более менее понятно--если что спрашивай постараюсь объяснить))
|
|
|
|
retas |
Дата: Вт, 06.01.2009, 18:49 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Всунув программу в mikroB и нажав Run получаю предупреждения об ошибках: ожидается "то то" а написано "это".Пробовал поправлять, всё равно компилер недоволен. Вот и хочется чтоб кто понимающий подправил. Спасибо.
|
|
|
|
evgenb |
Дата: Вт, 06.01.2009, 19:38 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 14.09.2007
Статус:
Offline
|
retas Вот посчастливилось наткнуться на часики на Бейсике - думал вникну, поизвращаюсь но... Мож спецы попробует у себя запустить и подскажут что где подправить? http://www.micro-examples.com/public....ck.html Написано на mikroC
|
|
|
|
a_sergeevich |
Дата: Ср, 07.01.2009, 18:02 | Сообщение # 5 |
Группа:
Заблокированные
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Кстати с микроСи перевести прогу на микроБейсик не сложно если есть мануал русский на микроСи и английский на микроБейсик (русского нет ещё). Там почти всё совпадает, только синтаксис написания чуток разный. Я вот сейчас кстати с ребятами с Микрочиповского форума, частотомер добиваю на 628-ом пике с использованием TMR1 и TMR0, прога пишется на микроСи, но если всё завершится удачно, попробую переписать на микроБейсике и выложу тут, а пока кому интересно можете посмотреть то, что получилось: http://slil.ru/26514370 . Проблема на данный момент заключается в том, чтобы убрать погрешность, которая растёт с ростом частоты, хотя это может быть связано с тем, что проверка проводилась пока только в протеусе и не исключено, что эта погрешность связана с ним.
|
|
|
|
retas |
Дата: Вт, 13.01.2009, 08:04 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Поставил новый микроБейсик и компилятор доволен. Теперь такой вопрос. В PicSimulatorIDE есть оператор LOOKUP, чем его заменить в микроБейсике. Скажем имели: . FOR digit = 1 to 5 .........MASK = LOOKUP(0, 2, 4, 8, 128),digit .........portA_ = MASK ..next digit В часах повстречал '^v' и 'v^' и как сумел понять по хелпу, этот 'v' держит не значение регистра 'v' а его адрес и в прогре идёт его инкрементирование - чем такие навороты могут облегчить жызнь, разьясните, пжл. Спасибо.
|
|
|
|
a_sergeevich |
Дата: Ср, 14.01.2009, 21:20 | Сообщение # 7 |
Группа:
Заблокированные
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Лучше поставь микроСи, на него хелп есть на русском, да и помощь по нему легче получить. А в журнале "Радиоаматор" с 1 - 12 за 2006 год по нему полный цикл статей с примерами и т.д и т.п.
|
|
|
|
ADMIN |
Дата: Чт, 15.01.2009, 17:16 | Сообщение # 8 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
В microbasic аналогичную LOOKUP функцию можно реализовать с помощью оператора select case: Code sub function mask(dim num as byte) as byte ' this function returns masks
select case num ' for common cathode 7-seg. display case 0 result = $3F case 1 result = $06 case 2 result = $5B case 3 result = $4F case 4 result = $66 case 5 result = $6D case 6 result = $7D case 7 result = $07 case 8 result = $7F case 9 result = $6F end select 'case end end sub Это есть в примерах MicroBasic
|
|
|
|
retas |
Дата: Чт, 15.01.2009, 20:18 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Си я побаиваюсь - для моих задач он слишком заумен (дай бог микроБейсик осилить а его, гляди, и до конца дней моих хватит, тем более что он ведь не стоит на месте). Я понимаю что LOOKUP можно сделать с CASE но это не эффектно - микроБейсик наверное бы обиделся да и мне хочется чтоб программа на "одной" странице поместилась. И если позволите, пара вопросов мимо темы: как можно изменить (увеличить) скорость колеса прокрутки в Windows98 и как при широком мониторе в WindowsXP сжать изображение по горизонтали дабы не было всё растянутым (всё не выходит пообщаться со своим дружком, спецом в таких делах). Спасибо вам и удачи.
|
|
|
|
Alex |
Дата: Пт, 23.01.2009, 00:46 | Сообщение # 10 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
Quote sub function mask(dim num as byte) as byte ' this function returns masks select case num ' for common cathode 7-seg. display case 0 result = $3F case 1 result = $06 case 2 result = $5B case 3 result = $4F case 4 result = $66 case 5 result = $6D case 6 result = $7D case 7 result = $07 case 8 result = $7F case 9 result = $6F end select 'case end end sub Такие вещи нужно делать через массивы. Я не знаю как это на Бейсику, но думаю чтото в этом роде там есть. Создаёться таблица констант и через косвенную адресацию выбираеться значение из таблици. Такой метод будет работать гораздо быстрее чем выше приведённый и ресурсы програмной памяти не будет жрать.
Сообщение отредактировал
Alex - Пт, 23.01.2009, 00:47
|
|
|
|
Yrok |
Дата: Чт, 19.02.2009, 09:40 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Quote Всунув программу в mikroB и нажав Run получаю предупреждения об ошибках: ожидается "то то" а написано "это".Пробовал поправлять, всё равно компилер недоволен. Вот и хочется чтоб кто понимающий подправил. Спасибо. ---вставил в microbasic 7.0.0--все компилиться без проблем. Может ты забыл пик выбрать--если будет стоять другой может отказаться компилить.!!!!! Quote В часах повстречал '^v' и 'v^' и как сумел понять по хелпу, этот 'v' держит не значение регистра 'v' а его адрес и в прогре идёт его инкрементирование - чем такие навороты могут облегчить жызнь, разьясните, пжл. ---это называется указатель--по хелпу понял правильно--и эти навороты очень нужны--смотри в программе есть процедура procedure setValue(dim v as ^byte, dim s as byte, dim max as byte)--так вот если параметр V не будет указателем-то что произайдет--ты пытаешься установить часы setValue(@hh, 116, 23)--но в процедуру передастся значение переменной hh , а не сама переменная hh--так что все изменения которые ты проделаешь в процедуре никак неповлияют на hh---а вот передав указатель на ячейку памяти ты будешь изменять саму переменную.)))
|
|
|
|
retas |
Дата: Вс, 22.02.2009, 16:09 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Рад, Yrok, что вы жывы здоровы и воскресли на этом форуме. Но оказывается есть проблема по больше - ни какой пример микроБейсика не получается запустить в Протеусе - пишет что не может открыть HEX файл. И чем заменить в микроБейсике оператор LOOKUP (о чем я спрашывал выше)? Спасибо.
|
|
|
|
Yrok |
Дата: Вт, 24.02.2009, 10:20 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Quote Но оказывается есть проблема по больше - ни какой пример микроБейсика не получается запустить в Протеусе - пишет что не может открыть HEX файл. --скинь любой проект--я посмотрю что и почему не выходит--у меня таких проблем не возникало))) Quote И чем заменить в микроБейсике оператор LOOKUP (о чем я спрашывал выше)? --тебе абсолютно правильно сказал "basicpic" что надо использовать select case--я могу со своей стороны заявить что он полностью аналогичен Lookup!!!!--просто написание немного другое --там все в строку пишется а в microbasic все раскладывается по строкам--что я считаю наиболее хорошо для восприятия!! Quote Я понимаю что LOOKUP можно сделать с CASE но это не эффектно --почему??????? Quote да и мне хочется чтоб программа на "одной" странице поместилась. --если имеется ввиду страница микроконтроллера --то заверяю тебя что места займет в памяти контроллера не больше чем Lookup))))
|
|
|
|
retas |
Дата: Вс, 01.03.2009, 15:10 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
. Уважаемый, Yrok! . Любой пример из прилагаемых в микроБейсике у меня не запускается в Протеусе - скажем BlinkLED_mB. . Про CASE и LOOKUP. Как я понимаю, CASE логично использовать когда надо много чего делать, иначе неразумно ибо он использует IF и занимает много места а LOOKUP, когда надо иметь дело только с одним регистром, самое то, и использует он косвенный переход. И потом, чем больше позволено записать в одну строку, тем мне удобнее: скажем после метки в той же строке можно писать что либо, а после ELSE нельзя или если подряд мне надо поставить штуки 3-5 nop, каждому нужно дать по строке и получается, что на одной странице ни как не получается а так хочется свою писанину одним взглядом объять - приятно ведь смотреть на программу для часов. Только из за возможности уменьшить длину своих исходников я и поглядываю на микроБейсик. . Спасибо.
|
|
|
|
Yrok |
Дата: Пн, 02.03.2009, 10:50 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Привет!! Quote Любой пример из прилагаемых в микроБейсике у меня не запускается в Протеусе - скажем BlinkLED_mB. --у меня все работает--выложи проект протеуса --посмотрю почему не выходит у тебя. Насчет Case--насколько я знаю в microbasic больше ничего альтернативного нет--кстати почему думаешь что Lookup использует косвенную адресацию??? Насче записи в одну строку--так оператор Case тоже можно записать в одну строку Quote select case n case 1 m=2 case 2 m=3 case 3 m=4 end select --компилятор принимает и не ругается
|
|
|
|