AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
05.02.2015, 13:57
|
#11
|
Временная регистрация
Регистрация: 11.09.2007
Сообщений: 39
Сказал спасибо: 11
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: CodeVision передача в компьютер по прерыванию
Возможно...
При формировании прерывания создаётся так-же блок с новым putchar.Он здесь в виде маленькой программы в которой явно видна работа с буфером.
Но по-моему в само тело прерывания он не входит.
А вот используется-ли новый вариант putchar или какой другой - вопрос.
А Вы что-б посоветовали для вывода строки явно использующий буфер ?
С уважением....
|
|
|
|
05.02.2015, 14:10
|
#12
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: CodeVision передача в компьютер по прерыванию
Сообщение от andr_larr
|
А вот используется-ли новый вариант putchar или какой другой - вопрос.
|
Новый вариант putchar заменяет стандартного, но только в прямом обращении. Все остальные стандартные функции, работающие с УАРТом, работают напрямую с УДР. Поэтому, при необходимости форматированного вывода, вывожу в строку, а потом передаю эту строку своей функцией (с использованием визардовского путчара). Тогда через буфер и ждать не надо.
То же самое с вводом через УАРТ.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
05.02.2015, 14:43
|
#13
|
Временная регистрация
Регистрация: 11.09.2007
Сообщений: 39
Сказал спасибо: 11
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: CodeVision передача в компьютер по прерыванию
Новый вариант putchar заменяет стандартного, но только в прямом обращении. Все остальные стандартные функции, работающие с УАРТом, работают напрямую с УДР. Поэтому, при необходимости форматированного вывода, вывожу в строку, а потом передаю эту строку своей функцией (с использованием визардовского путчара).(с)
---------------------------
А что получается с прерыванием ? Ведь по очистке УДР программа снова вернётся к прерыванию в основном теле прерывания.Или Вы переписываете саму подпрограмму прерывания ?
--------------------------------
То же самое с вводом через УАРТ.(с)
---------------------------
Здесь у меня пока проще.Мне на контроллер нужно принимать 4 байта.
Я из компьютера леплю к каждому признак начала а сзади признак конца.
Ну а потом анализирую приёмный буфер и если начало и конец совпали то передаю середину в переменную.
С уважением...
|
|
|
|
05.02.2015, 14:58
|
#14
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: CodeVision передача в компьютер по прерыванию
Сообщение от andr_larr
|
А что получается с прерыванием ?
|
Вопрос, конечно, интересный... Помню, что были косяки и я отказался от стандартных функций, работающих на УАРТ. Подробности уже не помню - давно.
Сообщение от andr_larr
|
Я из компьютера леплю к каждому признак начала а сзади признак конца.
|
Этого не понял. Делаю так, как говорил ВиндоЗавру в параллельной теме. Все в АСКИ, соответственно, пакету можно дать нешестнадцатиричный признак начала (любая нецифра). Он же может быть командой, остальное в пакете - данные. Конец, для наглядности в терминалке, 0x0d 0x0a.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
05.02.2015, 15:58
|
#15
|
Временная регистрация
Регистрация: 11.09.2007
Сообщений: 39
Сказал спасибо: 11
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: CodeVision передача в компьютер по прерыванию
Все в АСКИ, соответственно, пакету можно дать нешестнадцатиричный признак начала (любая нецифра). Он же может быть командой, остальное в пакете - данные. Конец, для наглядности в терминалке, 0x0d 0x0a.[/QUOTE]
----------------------
Ну где-то так-же...У меня числа маленькие - однобайтные.
И в компьютерной программе есть блоки куда эту цифирь можно прилепить.
Плюс в блоках можно установить что прилепить к сей цифре справа и слева.4 таких блока - в каждом устанавливаю своё начало и конец.
Они могут вешаться на один порт - главное чтоб одновременно не работали.
Посылаю цифру.Она с прилеплеными началом\концом прибегает в контроллер попадая в буфер.Буфер анализирует начало.Если одно из 4 - разрешает дальше в буфер писать.Нет - посылает нафиг.Когда совпало начало - разрешает приём ещё 2-х байтов.Последний анализирует.Если правильный конец - средний байт в зависимости от значения начала передаёт в соответствующюю одну из 4-х переменных.
Всё в 16-и ричном коде.
Есть модули и для передачи строк (в АСКИ) - попробовал-работают.Но пока не нужны...
А вот в компьютер да,надо передавать довольно много 16-и битных чисел.Почему и возник вопрос с передачей...
С уважением...
Последний раз редактировалось andr_larr; 05.02.2015 в 19:35.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:14.
|
|