23:04


Копироание статей сайта без уведомления администрации сайта ЗАПРЕЩЕНО!!!
Меню BAS - Форум
Приветствую Вас, Гость · RSS 22.10.2017, 23:04

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Программирование - Bascom AVR » Вопросы - Ответы » Меню BAS
Меню BAS
oleg3462Дата: Воскресенье, 15.05.2016, 19:40 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Операционная система - windows 7, BASCOM 2.0.7.8.
 
YuriyДата: Воскресенье, 22.05.2016, 14:11 | Сообщение # 2
Master
Группа: Администраторы
Сообщений: 49
Награды: 2
Репутация: 101
Статус: Offline
oleg3462, выложите сохраненный проект.
 
oleg3462Дата: Воскресенье, 29.05.2016, 17:16 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Выкладываю сохранённый проект:

Код


'------Тест программы Меню BAS  --------

$regfile = "m88def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 16

'--------------------------- Параметры дисплея ---------------------------------
'--------------------------  NOKIA-1202 display  -------------------------------
'*******************************  96х68 рх *************************************
$lib "glcd-Nokia1100.lib"                    'Подключаем библиотеку lcd

'--------------------------  Настраиваем LCD  ----------------------------------
Config Graphlcd = 128x64sed , Cs1 = Portb.0 , Si = Portb.2 , Sclk = Portb.1 , Rst = Portb.7       'подключяем дисплей к портам МК
Config Portb.6 = Output : Led Alias Portb.6 : Led = 1
Const Negative_lcd = 0                    'Для негативного вывода информации, установить "Negative_lcd = 1"
Const Mirror_y = 1                    'Для переворота по Y установить "1/0"
Const Mirror_x = 1                    'Для переворота по X установить "1/0"
Initlcd                    'Инициализируем LCD
Cls                    'Очищаем LCD

'******************************* Переменные ************************************
Dim Dv As String * 4 , Di As String * 4 , Dt As String * 4 , U1 As Word , I1 As Word , T1 As Byte

'--------------------------- переменные меню -----------------------------------
Dim I As Word
Dim U As Word
Dim T As Byte

Dim I_epr As Eram Word
Dim U_epr As Eram Word
Dim T_epr As Eram Byte

'-------------------------------------------------------------------------------
$include "menu_start.bas"
'-------------------------------------------------------------------------------

Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Input

Do

U1 = U_epr
I1 = I_epr
T1 = T_epr

Setfont Font6x8

Dv = Str(u1)
Di = Str(i1)
Dt = Str(t1)
Lcdat 5 , 10 , "Set U="
Lcdat 5 , 76 , "V"
Lcdat 5 , 50 , Dv ;

Lcdat 5 , 10 , "Set I="
Lcdat 5 , 76 , "A"
Lcdat 5 , 50 , Di ;

Lcdat 5 , 10 , "Set t="
Lcdat 5 , 76 , "s"
Lcdat 5 , 50 , Dt ;

'-------------------------------- Меню -----------------------------------------
Menu:
Knopka = 0                    'Сброс кнопки
M_exit = 0                    'Флаг выхода из меню
Flag = Reload                    'Флаг загрузки меню

Setfont Font6x8                    'устанавливаем шрифт
Lcdat 1 , 1 , "  *** menu ***  " , 0                        'Шапка меню опционально, учитывать настройки вывода меню

Do
If Pinc.0 = 0 Then Knopka = 1                    'Кнопка=1 ( back / - )
If Pinc.1 = 0 Then Knopka = 2                    'Кнопка=2 ( Next / + )
If Pinc.2 = 0 Then Knopka = 3                    'Кнопка=3 ( ОК )
Call Menu_load_value_data()

Loop Until M_exit = 1

'Сохраняем данные в память
I_epr = I
U_epr = U
T_epr = T

Return                    'или Goto
'===============================================================================

'===============================================================================
' End не ставить
$include "menu_end.bas"
'-------------------------------------------------------------------------------
$include "Шрифты\font6x8.font"
$include "Шрифты\font12x16dig.font"
 
YuriyДата: Воскресенье, 29.05.2016, 17:58 | Сообщение # 4
Master
Группа: Администраторы
Сообщений: 49
Награды: 2
Репутация: 101
Статус: Offline
Ну а теперь вопросы, что не работает? На первый взгляд вижу несколько ошибок..
Return  уходит в неизвестнось, у Do нет конца..
 
oleg3462Дата: Воскресенье, 29.05.2016, 19:30 | Сообщение # 5
Новичок
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
При компилировании компилятор выдает ошибки:
Error : 28    Line :   146   IF THEN expected  , in File : menu_end.bas
Error : 7     Line :   146   IF THEN expected [END IF in source  146]  , in File : menu_end.bas
Error : 124   Line :   103   LOOP expected  , in File : C:\Program Files\Меню BAS\Меню\Menu test.bas
 
YuriyДата: Воскресенье, 29.05.2016, 19:59 | Сообщение # 6
Master
Группа: Администраторы
Сообщений: 49
Награды: 2
Репутация: 101
Статус: Offline
Вы исправили ошибки которые я указал?
 
oleg3462Дата: Вторник, 31.05.2016, 15:03 | Сообщение # 7
Новичок
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Ошибки исправил, компилятор ошибок не выдает, но при симуляции в Proteus на дисплее кроме надписи ***menu*** ничего не происходит.
Для экономии времени, большая просьба выложить рабочий проект, например как здесь http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page.
 
YuriyДата: Вторник, 31.05.2016, 23:07 | Сообщение # 8
Master
Группа: Администраторы
Сообщений: 49
Награды: 2
Репутация: 101
Статус: Offline
Вылаживаю пример в Proteus и видео, я использовал прерывания , вы можете как угодно хоть в цикле , хоть через Debounce.
Файлы
 
oleg3462Дата: Четверг, 02.06.2016, 08:43 | Сообщение # 9
Новичок
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Спасибо! Пример работает. Теперь буду разбираться откуда глюки берутся у меня.

Добавлено (02.06.2016, 08:43)
---------------------------------------------
Переустановил BASCOM и все заработало! Программа очень удобная и полезная!
При работе с программой заметил одну неприятность - при обновлении до версии 1.4 после закрытия программы обновления не сохраняются!
Проверял на Windows 7 и Windows 10.

 
YuriyДата: Пятница, 03.06.2016, 22:56 | Сообщение # 10
Master
Группа: Администраторы
Сообщений: 49
Награды: 2
Репутация: 101
Статус: Offline
Поправлено, после разблокировки на сервере, будет доступно для обновления.
 
Форум » Программирование - Bascom AVR » Вопросы - Ответы » Меню BAS
Страница 1 из 11
Поиск:

Copyright Elektron © 2017

Яндекс цитирования Проверка PR и ТИЦ