Реализация обмена данными по USART`у, которую мы рассматривали в предыдущей статье имеет некоторые недостатки. Функция отправки символа перед тем как инициировать передачу выполняет опрос флага UDRE регистра UCSRA в цикле while. А это значит, что микроконтроллер тратит свое драгоценное время на пустую работу. Прием данных осуществляется в однобайтовый буфер, при этом предыдущие данные затираются, если микроконтроллер не успевает их считывать.
   Для простых приложений такого подхода вполне достаточно, но для сложных гораздо эффективнее организовать передачу (прием) данных используя кольцевой (циклический) буфер.
   Микроконтроллер ATmega8535 имеет в своем составе модуль универсального синхронно/асинхронного приемопередатчика -  USART. С его помощью между компьютером и микроконтроллером можно организовать обмен данными по последовательному каналу. Раньше в компьютерах для этих целей использовались COM порты, однако на современных машинах они уже большая редкость. Если на вашем компьютере все-таки есть такой порт, то для подключения микроконтроллера, понадобится преобразователь уровней ТТЛ – RS232. Его можно собрать на микросхеме MAX232. 
   Микроконтроллер может “общаться” с lcd  по 8-ми или 4-ех разрядной шине данных. Первый вариант более простой, поэтому мы с него и начали, второй посложнее, но позволяет сэкономить 4 вывода микроконтроллера.  
   Давайте разберемся чем отличается это подключение, и добавим в нашу библиотеку поддержку 4-ех разрядной шины.

IAR + AVR Studio

06/12/2009 - 23:34
  Многих начинающих программистов WINAVR подкупает возможностью работать в связке с AVR Studio, которая имеет в своем составе программный отладчик. Если вы еще не в курсе, то IAR тоже позволяет это делать, только для этого нужно установить специальный формат выходного файла.
   Си существенно облегчает написание программ для микроконтроллеров. Однако при всех его преимуществах,  иногда возникает потребность написать часть кода на ассемблере. В IARе для этого можно использовать ассемблерные вставки, intrinsics функции или отдельные ассемблерные модули. Давайте на примере исходника для работы с энкодером разберем, как написать ассемблерный модуль, который можно использовать в сишной программе. 
Страница 30 из 37