Страница 1 из 1

ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 06:40
1945
Здравствуйте! помогите решить проблему
В начале программы настройка ватчдога на 2.2 секунды
затем идут настройки ЖСМ модуля и естественно обмен по уарту
в конце ассемблерская команда на сброс ватчдога.
Почему происходит конфликт и ватчдога всё время ресетиттся через каждые 2 милисекунды а не через 2.2 секунды

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 07:22
pav13
Ну серьёзно?? Опять догадываться? Файлы, где файлы?

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 07:50
1945
Flowcode1.fcf_avr
извините отсылаю файлы
протеус - но какой в нём смысл без модуля

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:17
pav13
вместо send char 0x0D для отправки просто пиши в конце send string \r,например было "AT+CMGF=1" - стало "AT+CMGF=1\r".так проще.

скомпилировал. поудалял все циклы в которых incomcall не должна быть чему-то равна, чтобы программа могла работать без модуля. всё ок. сброс каждые 2 секунды.

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:24
1945
pav13 писал(а):вместо send char 0x0D для отправки просто пиши в конце send string \r,например было "AT+CMGF=1" - стало "AT+CMGF=1\r".так проще.

скомпилировал. поудалял все циклы в которых incomcall не должна быть чему-то равна, чтобы программа могла работать без модуля. всё ок. сброс каждые 2 секунды.

да но тогда теряется весь смысл использования ватчдога - он мне нужен для сброса МК если длина ответа от модуля не
равна указанной в цикле. Я его для этого и хотел использовать............
как делать проверку ответа от модуля если не так?

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:35
pav13
какое-то странное применение собаки. ну да ладно. с этими циклами сброс тоже каждые две секунды. ничего не изменяет период на 2 мс.
где смотрели период сброса?

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:37
1945
pav13 писал(а):какое-то странное применение собаки. ну да ладно. с этими циклами сброс тоже каждые две секунды. ничего не изменяет период на 2 мс.

ну а как тогда узнать что модуль воспринял команду от МК ?
всегда нужно дождаться ответа от модуля
Что не зная как ответил модуль идти дальше по программе?

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:38
pav13
что за модуль?

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:40
1945
pav13 писал(а):что за модуль?

сим800l

Re: ватчдог в прерывании по концу приёма на уарт

СообщениеДобавлено: 09 фев 2019, 08:48
pav13
тот файл, который я давал ранее в другой теме - это прерывание по завершению приема по uart ответа от модуля.
после каждой посланной мной кокоманды модулю стоит макрос в котором идёт счет времени(время считается в другом прерывании по таймеру) например 15 секунд. т.е. программа ожидает ответа в течении этого времени, если его нет или пришел другой ответ, то что-то не так и вывод ошибки. в процессе ожидания проверяется переменная conformity, которая является результатом сравнения двух строк(принятой и нужной для сравнения в зависимости от поданной команды, нужная строка определяется переменной .compare_word).