Unsigned char EEPROM_read(unsigned int uiAddress)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE));
/* Set up address register */
EEAR = uiAddress;
/* Start eeprom read by writing EERE */
EECR |= (1<<EERE);
/* Return data from data register */
return EEDR;
}
ИСТОЧНИКИ И ПОТРЕБИТЕЛИ CLOCK
Работа с таймерами (на примере Т0)
Count Increment or decrement TCNT0 by 1.
Direction Selects between increment and decrement.
Clear Clear TCNT0 (set all bits to zero).
ClkT0 Timer/Counter clock.
Top Signalizes that TCNT0 has reached maximum value.
Bottom Signalizes that TCNT0 has reached minimum value (zero).
, N – 1,8,32,64,128,256,1024
Режим PWM
РЕГИСТР УПРАВЛЕНИЯ
№ п.п. | Адрес | Источник | Наименование вектора прерывания |
$0000 | RESET | Сброс по сигналу Reset, включению питания и сторожевому таймеру | |
$0002 | INT0 | Запрос внешнего прерывания 0 | |
$0004 | INT1 | Запрос внешнего прерывания 1 | |
$0006 | INT2 | Запрос внешнего прерывания 2 | |
$0008 | INT3 | Запрос внешнего прерывания 3 | |
$000A | INT4 | Запрос внешнего прерывания 4 | |
$000C | INT5 | Запрос внешнего прерывания 5 | |
$0006 | INT6 | Запрос внешнего прерывания 6 | |
$0010 | INT7 | Запрос внешнего прерывания 7 | |
$0012 | TIMER2 COMP | Совпадение таймера/счетчика T2 | |
$0014 | TIMER2 OVF | Переполнение таймера/счетчика T2 | |
$0016 | TIMER1 CAPT | Захват таймера/счетчика T1 | |
$0018 | TIMER1 COMPA | Совпадение «А» таймера/счетчика T1 | |
$001A | TIMER1 COMPB | Совпадение «B» таймера/счетчика T1 | |
$001C | TIMER1 OVF | Переполнение таймера/счетчика T1 | |
$001E | TIMER0 COMP | Совпадение при сравнении таймера/счетчика T0 | |
$0020 | TIMER0 OVF | Переполнение таймера/счетчика T0 | |
$0022 | SPI, STC | Завершена пересылка порта SPI | |
$0024 | UART0, RX | Завершение приема UART0 | |
$0026 | UART0, UDRE | Регистр данных UART0 пуст | |
$0028 | UART0, TX | Завершение передачи UART0 | |
$002A | ADC | Завершение AD преобразования | |
$002C | EE READY | Готовность EEPROM | |
$002E | ANALOG COMP | Срабатывание аналогового компаратора | |
$0030 | TIMER1 COMPC | Совпадение «С» таймера/счетчика T1 | |
$0032 | TIMER3 CAPT | Переполнение таймера/счетчика T3 | |
$0034 | TIMER3 COMPA | Совпадение «A» таймера/счетчика T3 | |
$0036 | TIMER3 COMPB | Совпадение «B» таймера/счетчика T3 | |
$0038 | TIMER3 COMPC | Совпадение «С» таймера/счетчика T3 | |
$003A | TIMER3 OVF | Переполнение таймера/счетчика T3 | |
$003C | USART1, RX | Завершение приема UART | |
$003E | USART1, UDRE | Регистр данных UART1 пуст | |
$0040 | USART1, TX | Завершение передачи UART1 | |
$0042 | TWI | Прерывание от модуля TWI | |
$0044 | SPM_RDY | Готовность SPM |
Режимы адресации AVR
Рис.1.1. Регистровая адресация (один регистр общего назначения)
Рис.1.2. Регистровая адресация (два регистра общего назначения)
Рис.1.3. Регистровая адресация (регистры ввода
Вывода)
Рис.1.4. Прямая адресация данных
Рис.1.5. Косвенная адресация данных со смещением
Рис.1.6. Косвенная адресация данных
Рис.1.7. Косвенная адресация данных с преддекрементом
Рис.1.8. Косвенная адресация данных с постинкрементом
Рис.1.9. Адресация константы в памяти программ в командах LPM и ELPM
Рис.1.11. Косвенная адресация памяти программ в командах IJMP и ICALL
Рис.1.10. Прямая адресация памяти программ в командах JMP и CALL
Рис.1.12. Относительная адресация памяти программ в командах RJMP и RCALL
СИСТЕМА КОМАНД AVR