Ср фев 01, 2017 06:44:28
MPSM Assembler help писал(а):#v(expr) - Return the integer value of expr. Typically, used to create unique variable names with common prefixes or suffixes. Cannot be used in conditional assembly directives (e.g. ifdef, while).
Ср фев 01, 2017 08:03:00
include MicroMenu.h
;===========================
MicroMenu code 0x100-3
Main_Menu_Table
movfw index_menu
clrf PCLATH
bsf PCLATH,0
addwf PCL
goto Zastavka
goto_Punkt_Menu
Menu_Switch
movfw index_menu
clrf PCLATH
bsf PCLATH,0
addwf PCL
nop
goto_Menu_Table
goto_Menu_Submenu ; Супермакрос, создает цепочку макросов, в количестве пунктов меню
;===========================
Num_of_Submenu_Table ; Возвращаем количество пунктов в нужном подменю
movfw index_menu
clrf PCLATH
bsf PCLATH,0
addwf PCL
retlw 0
retlw_num_of_submenu_punkts
;===========================
Action_Switch ; Выполним действие, на котором находится курсор
movfw index_menu ; Берем выбраный пункт меню
clrf PCLATH
bsf PCLATH,0
addwf PCL ; Переходим на нужную ветку
nop
goto_Menu_Table_action
goto_Menu_Submenu_action ; Супермакрос, создает цепочку макросов, в количестве веток выполняемых действий
Ср фев 01, 2017 08:13:49
Пока_без_кота писал(а):лишь 1 раз.
main_loop
call Fr_Main_Ch ; въбор режима и ожидание кнопки избор режим на работа и чакане за бутон
btfsc Fx_Key
call Fx_Work ; Frequency
btfsc FxP_Key
call Fx_Work ; Freq + Preskaler
btfsc Cx_Key
call Cx_Work ; Cx Meter
btfsc Lx_Key
call Lx_Work ; Lx Meter
btfsc Tx_Key
call Tx_Work ; Tx Meter
goto main_loop
Ср фев 01, 2017 13:53:57
botchin писал(а):...Сравните с то что въ предлагаете.
NUM_OF_SUBMENU_PUNKTS_1 equ NUM_OF_SUBMENU_1_PUNKTS
NUM_OF_SUBMENU_PUNKTS_2 equ NUM_OF_SUBMENU_2_PUNKTS
NUM_OF_SUBMENU_PUNKTS_3 equ NUM_OF_SUBMENU_3_PUNKTS
NUM_OF_SUBMENU_PUNKTS_4 equ NUM_OF_SUBMENU_4_PUNKTS
NUM_OF_SUBMENU_PUNKTS_5 equ NUM_OF_SUBMENU_5_PUNKTS
NUM_OF_SUBMENU_PUNKTS_6 equ NUM_OF_SUBMENU_6_PUNKTS
NUM_OF_SUBMENU_PUNKTS_7 equ NUM_OF_SUBMENU_7_PUNKTS
NUM_OF_SUBMENU_PUNKTS_8 equ NUM_OF_SUBMENU_8_PUNKTS
Ср фев 01, 2017 15:13:47
Пока_без_кота писал(а):поборол довольно банально, написав следующее:
Пока_без_кота писал(а):довольно компактному и читабельному (кол. строчек по вертикали) коду:
NUM_OF_SUBMENU_PUNKTS_1 equ NUM_OF_SUBMENU_1_PUNKTS
NUM_OF_SUBMENU_PUNKTS_2 equ NUM_OF_SUBMENU_2_PUNKTS
NUM_OF_SUBMENU_PUNKTS_3 equ NUM_OF_SUBMENU_3_PUNKTS
NUM_OF_SUBMENU_PUNKTS_4 equ NUM_OF_SUBMENU_4_PUNKTS
NUM_OF_SUBMENU_PUNKTS_5 equ NUM_OF_SUBMENU_5_PUNKTS
NUM_OF_SUBMENU_PUNKTS_6 equ NUM_OF_SUBMENU_6_PUNKTS
NUM_OF_SUBMENU_PUNKTS_7 equ NUM_OF_SUBMENU_7_PUNKTS
NUM_OF_SUBMENU_PUNKTS_8 equ NUM_OF_SUBMENU_8_PUNKTS
retlw_num_of_submenu_punkts macro ; Макрос, автоматически создаст таблицу возвратов количества пунктов в нужном подменю
local a=1
while a<NUM_OF_MAIN_MENU_PUNKTS+1
retlw NUM_OF_SUBMENU_#v(a)_PUNKTS
a+=1
endw
endm
154 3403 RETLW 0x3 36: retlw_num_of_submenu_punkts
155 3403 RETLW 0x3 ;точка для обработки ...... .....
156 3403 RETLW 0x3 ; или там что-то еще
157 3403 RETLW 0x3
158 3403 RETLW 0x3
159 3403 RETLW 0x3 ;NUM_OF_SUBMENU_8_PUNKTS
15A 3403 RETLW 0x3 ;или хотя так
15B 3403 RETLW 0x3
Сб фев 04, 2017 08:14:59
Пока_без_кота писал(а):Это немного не то.
Сб фев 04, 2017 09:07:37
Вс фев 05, 2017 08:04:52
otest писал(а):Как импортировать текст из ДШ и ANов в МПЛАБ для компиляции ?...
Вс фев 05, 2017 08:58:10
Вс фев 05, 2017 09:06:44
Вс фев 05, 2017 11:22:17
Вс фев 05, 2017 11:31:03
Вс фев 05, 2017 11:36:00
otest писал(а):КРАМ
Попробуй это сделать и выложи скрин.
Вс фев 05, 2017 13:06:18
Вс фев 05, 2017 13:59:13
Вс фев 05, 2017 15:56:46
otest писал(а):зачем такие тексты в АНах печатают ?
Вс фев 05, 2017 16:09:15
Вс фев 05, 2017 16:16:24
Вт мар 14, 2017 12:32:54
statesel:
goto init_td
goto startconvert
goto waitconvert
goto read_td
goto relax
goto relax
goto tnext
goto t_error
IF HIGH(statesel)-HIGH($-1) ; <-- ошибка в этой строке.
ERROR "Table statesel over page edge"
ENDIF
Error[151] C:\USERS\....\NEWPIC_8B_GENERAL.ASM 273 : Operand contains unresolvable labels or is too complex
Вт мар 14, 2017 15:53:35