27

Как пропатчить прерывания на Arduino?

Все чаще и чаще, мне вспоминается "классическая шутка" :

Как пропатчить прерывания на Arduino?

Ну и у меня "классический" вопрос:

"Как пропатчить Ардуину" на работу с регистрами?


Суть:

прижучило меня прототипировать устройство с "хитрым" и самое главное "быстрым" протоколом на UART.


В наличии есть ардуина 2560, мне пофиг, сам главное чтобы монотонно циферки отправляло, и я доволен :)


Яж "дурак", яж с криками "ща заардуиню"... наардуинил...

Громоздкость кода ардуино - дает неудовлетворительный результат.

монотонности потока данных - не получается. Байтик либо задержится, либо вообще "потеряется" с кодом EOF.


Ок.

1)Переезжаем в AS7/MicrochipStudio.

1.1. Как же классно писать в IDE "нормального программиста"

2) Вспоминаем "как там регистрами рулить" на С/С++


компилим, шьем... 5 секунд... полет нормальный...

7 секунд полет норм...

8я секунда...


Суть:

0. чистый проект AS7 C/C++, язык "быдло Сиплюс" на диалекте Си.

1. рулю UART0, через регистры, на 230400

2. Декларирую ISR' s" UDRE и TXE.


задача: отправить массив uint8_t указанной длинны.


пусть будет...

uint8_t Word[32] = {`H`...}; //"Hello world\n\0"


есть функция запуска процесса...

есть обработчик UDRE, с доступом через указатель к массиву, и приватному uint8 счетчику позиции и длинны.

есть обработчик TXC, обнуляющий счетчики.


по значениям счетчика запуск отслеживается.


а в железе это работает так:

Hello world

Hello world

Hello world

(спустя 7 секунд)

HeHeHeHeHeHeHeHeHe....


причем на осциллографе, я реально вижу, что каждый символ

начинает ходить с паузой в 1мс.


все мозги сломал... в чем прикол?

как пропатчить ардуину на прерывания?

(без рейтинга)

UPP: извиняюсь за "косноязычие в комментах".... по буквам "мажу"... сенсорный экран, он такой сенсорный...

Arduino & Pi

1.5K поста20.8K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

Я понял, у вас в коде ошибка. А может даже не одна. Попробуйте писать код без ошибок.

Шутка, просто мало что понял, но очень интересно.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Чуть жопа не сгорела) шутка это хорошо. Просто лично сталкивался с такими

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Да там не только ж0па пiдгорает...

У меня почему то без моего ведома херятся регистры T0.

Чуть позже я наверно "разрисую во всех красках"... как мешает arduino ide и #include arduino.h разрабу, умеющему в прерывания....

Но это произойдет не раньше моего возврата с орбиты офигивания :)

Иллюстрация к комментарию
раскрыть ветку (2)
Автор поста оценил этот комментарий

Попробуйте писать в блокноте и не использовать эту либу=D

Продолжим подгорание

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я пока забросил пооект... не до него..


Но. Какие траблы на текущий момент:


Беру атмелстудию.

Пишу в ней код.

Компилирую...

Прошиваю через дудку, настраивал по инструкции:

https://itnan.ru/post.php?c=2&p=284352 или похожей...

Бутлоадер норм, не сносится.

А вот Т0 - начинает компостировать мозг. Хотя по идее не должен....


Беру STK500/AVRISPmkII прошиваю этот же HEX, снося бутлоадет - все работает по моему коду.

В чем прикол - пока не разобрался.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку