roboforum.ru

Технический форум по робототехнике.
Текущее время: 29 апр 2025, 22:40

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения: прерывание виснет
СообщениеДобавлено: 15 фев 2007, 23:33 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
ХЕЛП
прерывание виснет
но программа работает

поставил отладочный светик на PINB.4 когда прога работает он моргает
второй отладочный светик на PINB.5 который должен сработать если контроллер хоть раз вошёл в прерывание PIND.6 включается если прерывание отработало и пошла моя процедура PIND.7 если моя процедура прошла.

во время приёма данных процессор зависает
светик который на входе в прерывание PINB.5 не загораецца
тоесть проц  уходит по прерыванию но процедура прерывания не запускаеться

настройки с 2х концов одинаковые
провода не перепутал
в чём может быть дело????

исходник в инклюде


Вложения:
контроллер.c [5.08 КиБ]
Скачиваний: 432
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 00:44 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
ставь метки как в   avr123.nm.ru/z4.htm  
и  смотри где виснет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 11:50 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
метки...
толку от этих меток ежели я устройство уартом подключаю к КПК
вместо меток я на свободные ноги мк светодиодов нацепил и в код вместо меток поставил включение ножек последовательно
когда начинаецца передача часть светиков срабатывает часть нет

мне от этих меток не жарко не холодно
я ведь их в принципе не могу ничем увидеть так как уарт занят подключён к девайсу

виснет гдето в этих 4х строчках
вчера вечером устал спать пошёл не определил точно в какой
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)   //тут ещё прога работает
  {
  rx_buffer[rx_wr_index]=data;
  if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
  if (++rx_counter == RX_BUFFER_SIZE) //а вот досюда процессор не доходит


такое чуство что мк по прерыванию начинает принимать данные но почемуто не принимает и висит в непрерывном ожидании. хз мож ждёт пока буфер заполнится или ещё что.
похоже дело не в том что код у меня дурацкий а просто я непонимаю как уарт сделать человечески


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 13:44 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
мне от этих меток не жарко не холодно
я ведь их в принципе не могу ничем увидеть так как уарт занят подключён к девайсу


дак устройство отображает информацию ?  если нет то кинте параллелно провод на устройство отображающее инфу.  

На выход USART можно кучу приемников навесить...  ДВА совсем легко !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 13:45 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
или в симуляторе посмотрите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 16:00 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
и в что я получу подрубившись в линию??

тоже самое только вместо светиков у меня в терминале придёт сообщение - метка стоящая перед этими 4мя строчками кода

и чтоб подрубиться это мне ещё надо заказывать преобразователь интерфейса в москве, неделю только ждать.

во вторых код абсолютно типичный
у в задачах курса один в один такой же код для уарта
и в эмуляторе всё ессесно гуд также как и в задачах курса
но в железе почемуто не идёт =/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 16:32 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
чтоб подрубиться это мне ещё надо заказывать преобразователь интерфейса в москве, неделю только ждать.


достаточно резистор 10 к на базу кт3102, эмитер на землю, коллектор на +5 вольт через резистор 3 ком  и с коллектора проводок на вход КОМ порта ну и земли соединить.



Myp писал(а):
в задачах курса один в один такой же код для уарта

и в эмуляторе всё ессесно гуд также как и в задачах курса

но в железе почемуто не идёт =/


значит какое то различие в железе раз в эмуляторе нормально работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 16:37 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
 if (++rx_counter == RX_BUFFER_SIZE) //а вот досюда процессор не доходит

попробуйте так:

if (++rx_wr_index == RX_BUFFER_SIZE)
{
rx_wr_index=0;
}


if (++rx_counter == RX_BUFFER_SIZE)
{     //а вот досюда процессор не доходит

}


===============

вы уверены что  rx_counter rx_counter  у вас достигает  (RX_BUFFER_SIZE - 1)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 17:16 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Цитата:
вы уверены что  rx_counter rx_counter  у вас достигает  (RX_BUFFER_SIZE - 1)


неа не уверен :roll:
тока как бы посмотреть до скольки эта считалочка считает... :?:
в принципе я пробовал всего 1 символ отправить, не прошёл


Цитата:
достаточно резистор 10 к на базу кт3102, эмитер на землю, коллектор на +5 вольт через резистор 3 ком  и с коллектора проводок на вход КОМ порта ну и земли соединить.

ладно уговорили пойду в суботу на рынок куплю транзистор =)
ато я ток недавно перехал в голую квартиру пришлось всё закупать с нуля паяльник, пинцет, резисторы, даж с проводками проблема=)

ЗЫ
надо всёже подключить выход кпк к звуковухе померять какие там импыльсы и уровни
ато у меня вкрались сомнения что там не всё в порядке :evil:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 17:35 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
на звуковуху можно и с USART передавать !  (через резистор 22-100 ком)

только расшифоровывать в ручную придется, или утилитку написать.  с скорость передачи наверно до 4800-9600 делать.

звуковуха со звуковым редактором это же 2-х лучевой низкочастотный осциллограф.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 17:38 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
а что ты топик не в микроконтроллерах завел ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 20:32 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
avr123.nm.ru писал(а):
а что ты топик не в микроконтроллерах завел ?

ну это
тут же ветка для  ламеров
если бы это была какаято реальная тема...
передача данных по USART  это как раз основы основ, и заковыка у меня чисто ламерская  :(


на счёт передачи
1 символ то по уарту можно и вручную расшифровать=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 20:56 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
ой я дураааак
у меняж контроллер настроен на 9600
а прогу я залил со скоростью 19200
пока экспериментировал с прогой забыл 9600 поставить

это я тока когда звуковухой померел и ничё не увидел понял что скорость слишком дикая

пойду прогу переделывать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 21:38 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
переделал не помогло...


короче померял на компе звуковухой
если передаёт МК форма сигналов такая
-------   ----             ------/-/-/-/-/-/-/-/-/(типа нулевой уровень и 50Гц шум)
        |  |    |            |
        |_|    |______|        тоесть на картинке импульсы это провалы

а если передаёт КПК форма сигналов такая

        ---     ---------
        |  |    |          |
____|  |__|          |___/_/_/_/_/___   тоесть на картинке импульсы это пики


причём уровень сигнала от КПК зашкаливает почти а уровень сигнала от мк вполне в пределах

чёто мне это не нравица


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2007, 22:13 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
вобщем так
вычислил строчку в которой виснет

status=UCSRA;
PINB.5 = 1;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
  {
  PIND.6 = 1;

светик на ноге 5 загорается светик на ноге 6 не загорается


помогите расшифровать строчку if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

это я так понял проверка на 3 типа ошибок.
ошибка фрейма  FRAMING_ERROR
ошибка чётности PARITY_ERROR
и чёто с данными DATA_OVERRUN

а вот с операциями логическими непонял ну  короче если в итоге  условия не равны нулю то прога работает

сначала делаем побитовую операцию "или" между FRAMING_ERROR  PARITY_ERROR и DATA_OVERRUN
потом делаем побитовую операцию сложения UCSRA и результатом"или"

блиин нифига не понимаю в этих операциях
единственно что понятно это то что результат этих операций у меня ноль и прога стопаеться


Последний раз редактировалось Myp 16 фев 2007, 22:32, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO