реклама на сайте
подробности

 
 
> Проблема с ATMEGA1244, портится содержимое ОЗУ
lehacheb
сообщение Apr 15 2013, 06:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 11-04-09
Пользователь №: 47 508



У меня возникла вот такая проблема при написании программы на ATMEGA1244:
когда идет обмен данными с компъютером по UART у меня неожиданно переменные в
ОЗУ портятся, принимают значения, которые никогда не должны принимать в программе,
т.е. в ОЗУ записывается какой-то мусор. Естетственно это приводит к сбою программы.
Это происходит не при каждом запросе, а время от времени на 100-й или 1000-й запрос.
Когда обмена нет, программа работает нормально.
Это происходит, даже если программа не отвечает на запрос, по самому факту прерывания
по UART. Переменные портятся различные, расположенные в разных местах ОЗУ (пробовал
менять расположение переменных в ОЗУ).
Не могу понять что происходит, с чем это связано. Может кто сталкивался с такой проблемой
или может что-то посоветовать.
Среда Atmel Studio 6.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lehacheb
сообщение Apr 16 2013, 05:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 11-04-09
Пользователь №: 47 508



Извините, я оказывается вводил в заблуждение, даже если отключить прерывание по UART, и даже отключить прием
все равно переменные портятся если идет запрос! Если запросов нет не глючит.
Получается это электрические помехи? Интерфейс у меня гальванически развязанный....
Go to the top of the page
 
+Quote Post
SergeBS
сообщение Apr 16 2013, 20:48
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 11-05-07
Пользователь №: 27 645



Цитата(lehacheb @ Apr 16 2013, 08:54) *
Извините, я оказывается вводил в заблуждение, даже если отключить прерывание по UART, и даже отключить прием все равно переменные портятся если идет запрос! Если запросов нет не глючит.

Все страньше и страньше... А что за запрос такой, который есть, когда UART отключен? По пунктам, что вообще имеет место? Типа
1. Есть прием из компа по UART каждые ... или чтобы скомандовать ... Принятое вызывает ...
Можно отключить? Отключен? Помогло?
2. Есть передача в комп по UART. Когда ..., передается ...
Можно отключить? Отключен? Помогло?
3. Есть запрос (куда, откуда?). Он еще идет куда-то (куда?) или когда-то (когда?). И что при этом происходит (должно происходить)?
Можно отключить? Отключен? Помогло?
Помогает "квадратиками и стрелочками" нарисовать - данные пришли - данные ушли. Поскольку например достаточно просто организовать буфер UART не кольцом (классический), а линейный, и он без очистки забьет все. Вообще такие "глюки" обычно при играх с указателями/массивами возникают.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 18:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016