• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
Eugene315

Передача данных во время вычислений.

12 сообщений в этой теме

Eugene315    6

Немного общий вопрос.

Есть atmega328 которая постоянно генерит PAL/SECAM сигнал на телевизор. Она берет буквы из памяти и выводит их на экран тв.

Каким образом можно записывать(передавать с другого устройства) новые данные( новые буквы) без прерывания генерирования видеосигнала, если исключить синхронизацию между atmega328 и передающим устройством( т.е. чтобы передатчик просто закидывал данные и не думал о том, что происходит дальше по линии)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
elki    65

Я думаю тут было бы уместно использовать DMA, но в мегах его нет. Сам не очень силен в программировании, только учусь, гуру придут подскажут что то более дельное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Eugene315    6

Возможно было бы поставить общую SRAM, однако решение не совсем оптимальное - у atmega хватает своей памяти, и лишняя память - не очень хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    265

А в чем проблема-то? На относительно небольшой скорости USART - чем не вариант? 9600 бод достаточно для текстовых "дисплеев", а в этом случае обработку прерываний можно вести во время обратного хода луча или в "темных" зонах (в т.ч. межкадровых интервалах)...

И такие реализации есть, и не одна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Eugene315    6

Да, я видел такое, но не до конца понял. в atmega UART регистр на 1 байт. Предположим я хочу передать 8 букв по 1 байту каждая. Если я буду делать это пока рисуется картинка, то получается что 7 букв уйдут вникуда, а atmega обработает только последнюю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    277
28 минут назад, Eugene315 сказал:

в atmega UART регистр на 1 байт

Передавайте по одному байту. После передачи каждого байта ждите подтверждения от atmega, что байт принят и регистр освободился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    265
Только что, Yurkin2015 сказал:

После передачи каждого байта ждите подтверждения от atmega, что байт принят и регистр освободился

Зачем?! Нет, можно и так, конечно, но, простите, вы сколько собрались принятый байт обрабатывать?! это ведь доли микросекунды, за это время у вас на дисплее в строке и одна точка не отрисуется!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Eugene315 сказал:

Есть atmega328 которая постоянно генерит PAL/SECAM сигнал на телевизор

А вы ничего не напутали? Может кодер PAL/SECAM всё же отдельно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Eugene315    6

Все методы выше подразумевают, что передатчик должен спрашивать у приемника, чего мне крайне бы не хотелось. PAL/SECAM отдельно, я уже не помню что у меня там генерит, саму плату я давно не запускал, просто думаю пока, как реализовать.

 

@ARV Так там каждую новый такт происходит прорисовка, даже если частоту уменьшить, вы предлагаете успевать все данные передать за 1/(8*10^6) секунды?

Изменено пользователем Eugene315

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    265

Я вам сказал уже: принимаются байты во время обратного хода луча и в темных промежутках между кадрами. Там достаточно времени для обработки принятого по прерыванию байта. За 512 или сколько там строк в PAL вы сможете принять и обработать 512 байт данных. 

В общем, отсылаю вас к истокам, изучайте, как делали другие: http://www.rlocman.ru/shem/schematics.html?di=63872 

https://www.mikrocontroller.net/topic/53140

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    590

Вообще по факту, у контроллера ДВА байта на приём, пока идёт приём второго байта контроллер может ещё держать первый в буффере т.е. контролер может пережить паузу между считыванием данных с UART чуть меньше чем время передачи двух байт. На скорости 9600 бод это... эгеж! Целых две милисекунды! Сколько там строк за это время пронесётся по экрану?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сообщения

    • Возможно ли изготовить печатную плату на   лазерном станке для гравировки и резки ( 40 Вт)
    • не понимаю на усилитель подается 32 в , перемычку на реле кидаешь, и ни чего не происходит, музыка ни как не играет, до этого хоть как то звучало. небольшой щелчок в колонках и все..  
    • А что тут подсказывать. Обычный трансформатор на 12 вольт на нужную мощность  без всяких заморочек. И зачем получать постоянное 12 вольт чтобы его потом опять сделать переменным. Лишний геморой
    • @RIMUS1989i цобель у Вас на плате уся стоит?
    • @Гость Нет Значит это был совет по ремонту, а не описание заводской конструкции. Давно это читал, просто сам факт запомнился.
    •       Да запросто, ребята. Нет проблем.
      Для начинающего – однозначно «транзистор - тестер». Смотреть с 8 минут 10 секунд и до конца, до последних секунд! Там, в конце,  самое интересное.

      Далее Е7-15, хотя и староват уже. Стационарный. Цена большая, но терпимая. Он измеряет на частотах 100Гц и 1кГц. Плюс у него есть возможность подавать напряжение смещения. Постоянная составляющая важна для проверки оксидных конденсаторов, чтобы не было переполюсовки, а также для оценки барьерной емкости диодов (импульсный, выпрямительный или варикап).

      Более современный – АКИП-6108. Цену даже не смотрите. Цена большая, почти как у цифрового осциллографа. (Вроде бы, какой-то русифицированный Hantek, не помню точно). Переносной, на  аккумуляторах. Он измеряет на частотах 100Гц, 120Гц, 1кГц, 10кГц и 100кГц.
      Или его упрощенная версия – АКИП6109 с частотами измерения 100Гц, 120Гц, 1кГц и 10кГц.
      Диапазон частот у АКИП-6108 и АКИП-6109 довольно большой, но они серьезно уступают даже устаревшему Е7-15, т.к. не могут подавать постоянное напряжение смещения.
    • Я почему вспомнил, когда пришел в часть, был там старослужащий сержант Гриша Бойчак, тоже телемеханик, и он решил проверить меня на гипотетическую неисправность - перегорание этого резистора. А на учебе, когда кто-то делал неисправность, а другой ее потом искал, самым жестоким дефектом (который так никто и не смог найти и за который я чуть было не был бит) было, когда я разобрал ламповую панельку и откусил у контакта "лиру". Хотя неконтакт в панельке вроде бы  обычная неисправность.