Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: terrarus, ivan_fd  
Форум Picbasic.ru » Программирование МК » Mikrobasic » Почему такое происходит. И как должно быть?
Почему такое происходит. И как должно быть?
vladh Дата: Ср, 23.10.2013, 16:52  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Уважаемые форумчане. Вот пересаживаюсь с Протона на мВ и сразу столкнулся с кучей вопросов.
Вопрос 1. В приложении привожу схему. В этой схеме МК соединен с ЖКИ и клавиатурой 3х4. Создал код на базе того, который с успехом у меня работает в Протоне. Здесь же код капризничает. В коде есть закоментированные строки в которых анализируется появление 1 в 3 столбце типа:
'If Ver3 = 1 Then
'Key = 3
'GoSub Pik
'Return
'end if
Если убрать коментарии и попробовать откомпилировать код, то компилятор ругается. Причем не совсем понятно, что ему не нравится. Может быть кто то поймет причину ругачки?
Вопрос 2. Почему в Протеусе в режиме прогона программы маркер бегает по экрану, и значение клавиши появляется в разных местах программы.
И последний 3 вопрос. Как должен быть организован код программы на листке редактора кода. Сам компилятор делит на две части программы. Это раздел определений и раздел самой программы. В других компиляторах я тоже делил на два раздела. Раздел определений и установок и раздел собственно самой программы. В мВ при попытке разместить скажем символы в разделе определений но после раздела определений переменных, компилятор ругается. Также, если в этом разделе(разделе определений) разместить команды присвоения, например, после строчек определения переменных присвоить переменной Key постоянного значения, компилятор опять ругается?
Прикрепления: _4-3.rar (58.1 Kb)
ЯНДЕКС Дата: 23.10.2013
Matrix252005 Дата: Ср, 23.10.2013, 17:13  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

vladh, сейчас я гляну код!!!

А почему Вы не хотите использовать готовую библиотеку мВ??? Она вроде бы нормально работает!!! И может лучше сделать вместо подпрограмм процедуры???


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Ср, 23.10.2013, 17:24  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Matrix252005 ()
А почему Вы не хотите использовать готовую библиотеку мВ??? Она вроде бы нормально работает!!!
Наверное. Хотя при попытке её использования тоже свои проблемы. Но об этом в другой раз.

Добавлено (23.10.2013, 17:24)
---------------------------------------------

Цитата Matrix252005 ()
И может лучше сделать вместо подпрограмм процедуры???
Мне думается это не принципиально.
Matrix252005 Дата: Ср, 23.10.2013, 17:29  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Я посмотрел Ваш код и схему и есть вопросы:

1) lcd_Out (1,1,"Bóo㸼 ºoã º»a³¸Á¸")  - это что??? Я так понял что тут должен был быть русский шрифт
2) у Вас Symbol   HorB = PORTC.0  
   
    Ниже в тексте 
   
    HorB.0 = 1
3) код нормально компилировался!!!

Сейчас попробую проверить сам код в работе...

P.S. я не сильно люблю эту "клаву"... Сколько не пытался на ней сделать отладку, ничего из этого не выходило... Я клавиатуру набирал из кнопок...

Добавлено (23.10.2013, 17:29)
---------------------------------------------
Да!!! Вот еще что забыл спросить:

А почему у Вас входа "висят" в воздухе???


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Ср, 23.10.2013, 17:38  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Matrix252005 ()
1)
Да, это текст кириллицой выводимый на экран ЖКИ.
Второй вопрос не понял. Выводы висящие в воздухе при моделировании не влияют.
Matrix252005 Дата: Ср, 23.10.2013, 17:54  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

По поводу второго вопроса:

В начале программы идет присвоение имен для портов, для вывода PORTC.0 имя HorB, а ниже в коде написано: HorB.0 = 1

Добавлено (23.10.2013, 17:54)
---------------------------------------------
ОК!!! Я сегодня уже не успею подправить код... Сейчас приду домой и гляну!!!


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Ср, 23.10.2013, 20:54  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Matrix25200513221В начале программы идет присвоение имен для портов, для вывода PORTC.0 имя HorB, а ниже в коде написано: HorB.0 = 1Да, действительно, это моя опечатка. Должно было быть HorB = 1
ivan_fd Дата: Ср, 23.10.2013, 23:39  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

У меня все нормально компилируется.

Второй вопрос, не понятно, что Вы имеете ввиду.

Третий вопрос, посмотрите в справке раздел Program Organization

Код
program <program name>
include <include other modules>

'********************************************************
'* Declarations (globals):
'********************************************************

' symbols declarations
symbol ...

' constants declarations
const ...

' structures declarations
structure ...
    
' variables declarations
dim Name[, Name2...] as [^]type [absolute 0x123]  [external] [volatile] [register]

[sfr]' procedures declarations
sub procedure procedure_name(...)
   <local declarations>
   ...
end sub

' functions declarations
sub function function_name(...) as return_type
   <local declarations>
   ...
end sub

'********************************************************
'* Program body:
'********************************************************

main:
   ' write your code here
end.

Сообщение отредактировал ivan_fd - Ср, 23.10.2013, 23:42
vladh Дата: Чт, 24.10.2013, 07:17  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата ivan_fd
13230Третий вопрос, посмотрите в справке раздел Program Organization
Спасибо. Этот важный раздел я почему то не увидел.
Теперь первые два вопроса. После того как я исправил ошибку на которую указывал Matrix252005, я убрал символы комментария" ' " и все вроде стало компилироваться. Но при пошаговой симуляции у меня в тех строчках где стояли символы комментариев отсутствует нумерация строк и строки эти в симуляции не участвуют. Как результат программа не видит 3 колонки клавиатуры (клавиши 3, 6, 9, #). И последнее, исходя из задумки номер нажатой клавиши должен отображаться на 3 строке в 4 позиции. При пошаговой симуляции вроде так и происходит. Но вот в динамике код отображается в нескольких местах на этой строке. Почему?

Сообщение отредактировал vladh - Чт, 24.10.2013, 09:20
Matrix252005 Дата: Чт, 24.10.2013, 08:47  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Владимир, я "подправил" Ваш код, посмотрите что вышло... Все норм работает!!! Подправил схему в протеусе, заменил клавиатуру...
Прикрепления: 3094557.rar (73.5 Kb)


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Чт, 24.10.2013, 09:48  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Matrix252005 ()
Владимир, я "подправил" Ваш код, посмотрите что вышло... Все норм работает!!!
Спасибо, Николай. Быстро посмотрел. Вроде бы как надо. Сейчас буду разбираться почему так. А схему можно было и не трогать. Там все ОК.
ЯНДЕКС Дата: 24.10.2013
Matrix252005 Дата: Чт, 24.10.2013, 09:50  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Мне не нравится та клава... Сколько не пробовал на ней отлаживать, всегда были бока... Вот и поменял на кнопки...

THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Чт, 24.10.2013, 10:02  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Во время пошаговой симуляции кнопка более наглядна для отладки работы клавиатур. Но на последующих этапах, особенно когда клавиатура в вашей программе второстепенна, то удобнее стандартная Протеус'овская. "Я так думаю" (ф.Мкртчан в фильме "Мимино").
ivan_fd Дата: Чт, 24.10.2013, 10:23  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

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

Я сейчас тоже балуюсь с клавиатурой, но на Протоне. У меня код немного больше и запутанее. Так же, специально добавил вывод на LCD (для сравнения), у меня он не используется.
Так вот: код на протоне занимает всего 770 слов на том же контроллере, что у Вас.
На МикроБасике - 1224 слова.

Еще раз извините, я ничего не навязываю, просто для сравнения.  wink

Сообщение отредактировал ivan_fd - Чт, 24.10.2013, 10:24
Matrix252005 Дата: Чт, 24.10.2013, 10:48  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Цитата ivan_fd ()
Еще раз извините, я ничего не навязываю, просто для сравнения.
 
Я тоже извиняюсь, я тоже не хочу ничего не восхвалять или унизить!!!

Провел тест с библиотекой клавиатуры 4х4 из мВ, предварительно убрав тот код!!! 

Сейчас программа скан. клавиатуры занимает:
Used ROM (program words): 498 (6%)  Free ROM (program words): 7694 (94%)

А там на любителя!!! 

P.S. Если нужно, могу выложить код программы.


THE TRUTH IS OUT THERE.

С уважением, Николай.
Форум Picbasic.ru » Программирование МК » Mikrobasic » Почему такое происходит. И как должно быть?
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: