Понедельник, 28.05.2018, 06:59
| RSS
Главная | Устройство управления и контроля. Часть 4 - Страница 44 - Форум
Защита, контроль, управление
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат ]
Форум » ФОРУМ » Электроника для дома » Устройство управления и контроля. Часть 4
Устройство управления и контроля. Часть 4


vasalДата: Вторник, 06.03.2018, 15:03 | Сообщение # 431
Группа: Участники
Сообщений: 15
Статус: Offline
USSD_1 EQU 79h ;        номер запроса баланса #xxx#
USSD_2 EQU 7Ah
USSD_3 EQU 7Bh
USSD_4 EQU 7Ch
USSD_5 EQU 7Dh
USSD_6 EQU 7Eh ;         ячейка для закрывающих номер кавычек (блокировка кавычек)

Наверное это здесь, но как сюда вставить AT+CUSD=1,"#100#" ?...подскажите если можно.
 
AdminДата: Вторник, 06.03.2018, 15:30 | Сообщение # 432
Admin
Группа: Администраторы
Сообщений: 3853
Статус: Offline
Это не подпрограмма. Вы написали только регистры, в которых хранится номер запроса баланса.
В начале подпрограммы формируется команда ATD, которую Вам ее нужно заменить на AT+CUSD=1,

т.е.
ATD(USSD_1, USSD_2, USSD_3,USSD_4, USSD_5)

заменить на:
AT+CUSD=1,"(USSD_1, USSD_2, USSD_3,USSD_4, USSD_5)"

где: USSD_1….. USSD_5 – это ячейки для хранения номера запроса баланса, например*100#

а вот подпрограмма, в которую нужно внести изменения:

ATD_BALANS
    CALL    AT_START
    movlw h'44'
    CALL    SEND_BYTE
    MOVF USSD_1,0
    CALL    SEND_BYTE
    MOVF USSD_2,0
    CALL    SEND_BYTE
    MOVF USSD_3,0
    CALL    SEND_BYTE
    MOVF USSD_4,0
    CALL    SEND_BYTE
    MOVF USSD_5,0
    CALL    SEND_BYTE
    BTFSC SIM_XXX,1 ; если модуль М10  (бит 1 = 1), то
    GOTO EX_ATD_BALANS ; пропускаем точку с запятой
    MOVLW h'3B'
    CALL    SEND_BYTE
    EX_ATD_BALANS
    CALL AT_FINISH
    RETURN
 
vasalДата: Вторник, 06.03.2018, 20:01 | Сообщение # 433
Группа: Участники
Сообщений: 15
Статус: Offline
Спасибо большое, только MPASM почему то ругается:

Warning[205] D:\C.ASM 11 : Found directive in column 1. (errorlevel)
Warning[205] D:\C.ASM 12 : Found directive in column 1. (errorlevel)
Warning[205] D:\C.ASM 177 : Found directive in column 1. (CBLOCK)
Warning[205] D:\C.ASM 187 : Found directive in column 1. (ENDC)
Warning[207] D:\C.ASM 283 : Found label after column 1. (NUM_USSD_1)
Warning[207] D:\C.ASM 309 : Found label after column 1. (US_NUM)
Error[113]   D:\C.ASM 2890 : Symbol not previously defined (SIM_XXX)
Warning[207] D:\C.ASM 2894 : Found label after column 1. (EX_ATD_BALANS)
Warning[207] D:\C.ASM 2938 : Found label after column 1. (AT_START)
 
AdminДата: Вторник, 06.03.2018, 20:15 | Сообщение # 434
Admin
Группа: Администраторы
Сообщений: 3853
Статус: Offline
Так а что Вы изменили???  И какой исходник компилировали?
Я ведь привел существующую подпрограмму, а не модифицированную  wink
 
vasalДата: Вторник, 06.03.2018, 20:25 | Сообщение # 435
Группа: Участники
Сообщений: 15
Статус: Offline
Пардон, я думал это уже измененная модифицированная...
 


AdminДата: Вторник, 06.03.2018, 20:34 | Сообщение # 436
Admin
Группа: Администраторы
Сообщений: 3853
Статус: Offline
Цитата vasal ()
Пардон, я думал это уже измененная модифицированная...

Ладно, сдается мне что все это безыдейно...

; подпрограмма запроса баланса AT+CUSD=1,"#100#"
; номер #100# сохранен в ячейках USSD_1...USSD_5

ATD_BALANS
CALL    AT_START ; формирование АТ
movlw h'2B' ; формирование +
CALL    SEND_BYTE
movlw h'43' ; формирование C
CALL    SEND_BYTE
movlw h'55' ; формирование U
CALL    SEND_BYTE
movlw h'53' ; формирование S
CALL    SEND_BYTE
movlw h'44' ; формирование D
CALL    SEND_BYTE
movlw h'3D' ; формирование =
CALL    SEND_BYTE
movlw h'31' ; формирование 1
CALL    SEND_BYTE
movlw h'2C' ; формирование ,
CALL    SEND_BYTE
movlw h'22' ; формирование "
CALL    SEND_BYTE
MOVF USSD_1,0 ; первая цифра номера
CALL    SEND_BYTE
MOVF USSD_2,0 ; вторая цифра номера
CALL    SEND_BYTE
MOVF USSD_3,0 ; третья цифра номера
CALL    SEND_BYTE
MOVF USSD_4,0 ; четвертая цифра номера
CALL    SEND_BYTE
MOVF USSD_5,0 ; пятая цифра номера
CALL    SEND_BYTE
movlw h'22' ; формирование "
CALL    SEND_BYTE
CALL AT_FINISH ; формирование 0x0D, 0x0A
RETURN
 
vasalДата: Четверг, 08.03.2018, 18:30 | Сообщение # 437
Группа: Участники
Сообщений: 15
Статус: Offline
Спасибо, большое. В принципе,  еще пару дней и я пришел бы к этому smile , но вы сэкономили мне много времени. Еще раз большое спасибо.

Добавлено (08.03.2018, 18:30)
---------------------------------------------
С изменением в программе  возникла проблема такого плана. При нажатии # не загорается светодиод "Prog", вернее он загорается и гаснет, в чем может быть проблема?

 
AdminДата: Суббота, 10.03.2018, 15:21 | Сообщение # 438
Admin
Группа: Администраторы
Сообщений: 3853
Статус: Offline
Так если Вы даже версию не указываете, в которую вносите изменения, как я могу предполагать причину?
 
vasalДата: Понедельник, 12.03.2018, 09:37 | Сообщение # 439
Группа: Участники
Сообщений: 15
Статус: Offline
Извините, версия 1.5
 
AdminДата: Понедельник, 12.03.2018, 11:11 | Сообщение # 440
Admin
Группа: Администраторы
Сообщений: 3853
Статус: Offline
Посмотрите в программаторе, возможно программа "вылетела" за предел нулевого банка микроконтроллера (т.е. за адрес 8000)
 
Форум » ФОРУМ » Электроника для дома » Устройство управления и контроля. Часть 4
Поиск:



T2M © 2018
Сайт управляется системой uCoz