Читаем Микроконтроллеры AVR: от простого к сложному полностью

Текст программы:

#include

#include «interrupt. h>

#include «signal. h>

#include «eeprom.h>

#define F_CPU 4000000 /* 4 МГц */

#define UART_BAUD_RATE 9600 /* 9600 бод */

#define EEPR0M_SIZE (E2END+1)

#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*161)-1)

typedef unsigned char u08;

typedef char s08;

typedef unsigned short u16;

typedef short s16:

u16 read_counter; u16

write_counter;

SIGNAl(SIG_UART_RECV) /* Обработчик прерывания “прием завершен" */

{

   register u08 ee_write;

   ee_write = inp(UDR); /* Прочитать байт из буфера данных UART */

   outp(~ee_write, PORTB); /* Отобразить байт на светодиодах */

   eeprom_wb(write_counter, ee_write); /* Записать байт в EEPROM»/

   if (++write_counter >= EEPR0M_SIZE) /* Переполнение: установить смещение 0 */

      write_counter = 0;

}

SIGNAL(SIG_UART_TRANS) /* Обработчик прерывания "передача завершена" */

{

   register u08 ee_read;

   ee_read = eeprom_rb(read_counter); /* Прочитать следующий байт из EEprom */

   outp(ee_read, UDR); /* Записать байт в буфер данных UART */

   if (++read_counter >= write_counter) /* Переполнение: начать с 1-го символа */

      read_counter = 0;

}

int main(void)

{

   outp(0xff,DDRB); /* Все линии порта В на вывод */

   outp(0x00, PORTB); /* Зажечь все светодиоды */

   /* Разрешить прерывания RxD/TxD */

   outp((1<

   /* Установить скорость 9600 */

   outp(UART_BAUD_SELECT, UBRR);

   sei (); /* разрешить прерывания */

   read_counter = 0; /* Начать читать с первого байта в EEPROM */

   write_counter = 0; /* Начать запись с первого байта в EEPROH */

   outp('#', UDRi); /* Записать 1-й байт в буфер данных UART */

    for (;;) {} /* Бесконечный цикл */

}

Демонстрирует использование библиотеки вычислений с плавающей запятой

Автор: Volker Oth.

Демонстрирует использование библиотеки вычислений с плавающей запятой. Выполняет 4 основных арифметических операции. Результаты преобразуются в 16-битовый формат с фиксированной точкой и передаются на настольный ПК с помощью UART. Результаты могут быть просмотрены с помощью программы terminal или подобной:

$0000 (start identifier)

$006b = 107 = 10.0*(7.5+3.2)

$002b = 43 = 10.0*(7.5–3.2)

$00f0 = 240 = 10.0*(7.5*3.2)

$0017 = 23 = 10.0*(7.5/3.2)

Текст программы:

Перейти на страницу:

Все книги серии Библиотека инженера

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника