Перейти к содержанию
    

aleks431

Участник
  • Постов

    9
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. ******************************************************************************** **************** Сделал всё как советовали, вот что получается Например приходит ответ +csq: 24,0 OK После выхода из прерывания у меня в регистрах находится REG_1=0x32 REG_2=0x34 После возврата в программу я вычитаю из каждого числа 0x30,ответ в регистры REG_1=2 REG_2=4 Умножаю первое число на 10 для перевода в старший разряд и складываю оба числа, в итоге получается REG_SUMMA=24 всё правильно Дальше у меня подпрограмма проверки попадания этого числа в диапазон 5...31 movf CSQ_SUMMA, w addlw -.5 ; Сперва нормируем значение addlw -(.31 - .5 + 1) ; Теперь сравниваем с диапазоном btfsc STATUS,C goto SKIP ;сюда попадаем если сумма входит в диапазон SKIP : ;сюда попадаем если не попадает в диапазон В MPLAB всё проходит отлично и правильно , а вот в запрограммированном устройстве почему-то вылетает в SKIP. НИКАК НЕ ПОЙМУ В ЧЁМ ПРОБЛЕМА. МОЖЕТ ПОДСКАЖЕТЕ ? ***************************************************************************** Второй вариант той же программы проверки попадания в диапазон 5.....31 movlw .5 ; Проверяем нижнюю границу МЕНЬШЕ < 5 bcf STATUS,C ;сбрасываем флаг С subwf CSQ_SUMMA,W ;вычитаем содержимое W из CSQ_Reg,РЕЗУЛЬТАТ --> W btfss STATUS,C ; проверяем БИТ 0 (C - CARRY-ПЕРЕНОС),ЕСЛИ 1 - ПЕРЕНОС ЕСТЬ, 0 - ПЕРЕНОСА НЕТ goto SKIP ; Меньше минимума - выходим movlw (.31 + 1) ; Проверяем верхнюю границу БОЛЬШЕ > 31 bcf STATUS,C ;сбрасываем флаг С subwf CSQ_SUMMA,W ;результат в --> W btfsc STATUS,C ;проверяем БИТ 0 (C - CARRY-ПЕРЕНОС),ЕСЛИ 1 - ПЕРЕНОС ЕСТЬ, 0 - ПЕРЕНОСА НЕТ goto SKIP ; Больше максимума – выходим В MPLAB также ВСЁ ПРОХОДИТ ПРАВИЛЬНО, В УСТРОЙСТВЕ - ТО ЖЕ САМОЕ В ней первая половина программы проходит правильно, а вторая почему-то неправильно - вылетает в SKIP
  2. Спасибо, буду пробовать. Скорее всего я не правильно делал, сам сомневался . Поэтому и решил задать вопрос более опытным. Отпишусь когда что-то станет понятно.
  3. Спасибо, конечно, но я не об этом. У меня на экране терминала идёт ответ +CSQ: 24,0 Через прерывание загружаю 2 и 4 отдельно в разные регистры Затем в основной программе над старшим числом делаю ANDLW B'00001111' и загружаю обратно в этот регистр То же самое со второй цифрой Затем складываю и получаю число h'24' ----- не знаю правильный ли результат ? ЗАТЕМ проверяю на попадание в диапазон 5 - 31 Но почему-то у меня сомнение, что у меня загружаются в прерывании именно 2 и 4 (как на экране терминала) Может подскажете как можно проверить, какие цифры загружаются перед математическими операциями Программа на ассемблере
  4. Подскажите, пожалуйста , в каком формате приходят ответы на команду AT+CSQ . Например, приходит +CSQ: 23,0 . Наблюдаю за процессом в терминале PUTTY . Не могу понять в каком формате приходят цифры 23,0 (десятеричный, шестнадцатеричный ?)
  5. А какой программой вы смотрели параметры amr-файла?
  6. Спасибо за ответ. Вечером попробую. Ответ отпишу после результата
  7. По длине файлы в норме, не больше чем в документации. Общая длина всех файлов 460 кб. Один из файлов посылаю
  8. У меня модуль SIM900 - была версия 1137B07SIM90064-ST Сейчас перепрошил на "All-in-one" 1137B01SIM900M64_ENHANCE После прошивки проверил какие мне нужны были команды -всё вроде работает Затем решил записать AMR файлы в модуль. После того как записал их, проверил , что они записались командой AT+CFSRFILE=....... Ответ был положительный,т.е всё записалось. Затем убрал соединение DCD контроллера и модуля. Еще раз проверяю. После инициализации файловой системы AT+CFSINIT OK проверяю AT+CFSGFIS="имя файла" выдаёт +CFSGFIS размер файла Значит всё записалось нормально? А вот после звонка на телефон и поднятия трубки и команды AT+CPAMR="имя файла.amr",0 или команды AT+CPAMR="имя файла.amr",1 выдаёт ERROR Подскажите в чем проблема, что делаю не так? Уже сломал голову!
  9. Может кто подскажет как загрузить amr файлы в память sim900? Не до конца вьехал в тему Что и как подключить ,в смысле. По командам всё понятно.
×
×
  • Создать...