Jey767 писал(а):
многие говорят, что нужно начинать с ассемблер по авр
Мне говорили другое...
Можно хоть на паскале хоть на делфи на баском ,одно ASS офицальный язык AVR ну и что,если у нас офицальный бренд автомобиля будет Жигули ,что мне нельзя будет учится на иномарке ездить?
Вообщем надо просить Главнокомандующего командира, чтоб ветку создал про МК без этого уже не куда...
Книги всякие нужны книги всякие важны.
Самоучитель Разработчика устройств на микроконтролерах Белов Александ Владимирович
книга сидиЯ без книг обучался -там много информации (500-300)страниц а нужно главное было подчеркнуть.
Учился на форумах,ну и читал эксперементировал засыпал вопросами и тд.
кодвижон
протеус
были первые програмы для понимания устройств.
Потом программатор спаял ,отладочную плату купил и тд. (хотя и можно самоу было зделать).
Вот например ASS
;##############################################
;## Пример 1 ##
;## Программа управления светодиодом ##
;##############################################
;------------------------- Псевдокоманды управления
.include "tn2313def.inc" ; Присоединение файла описаний
.list ; Включение листинга
;------------------------- Начало программного кода
.cseg ; Выбор сегмента программного кода
.org 0 ; Устанеовка текущего адреса на ноль
.def temp = r16 ; Определение главного рабочего регистра
;-------------------------- Инициализация стека
ldi temp, 0x7F ; Выбор адреса вершины стека
out SPL, temp ; Запись его в регистр стека
;-------------------------- Инициализация Главного предделителя
ldi temp, 0x80 ; Записываем число $80 в регистр temp
out CLKPR, temp ; Записываем в регистр CLKPR
ldi temp, 0 ; Записываем 0 в регистр temp
out CLKPR, temp ; Записываем этот ноль в CLKPR
;-------------------------- Инициализация портов ВВ
out DDRD, temp ; Записываем ноль в DDRD (порт PD на ввод)
ldi temp, 0xFF ; Записываем число $FF в регистр temp
out DDRB, temp ; Записываем это число в DDRB (порт PB на вывод)
out PORTB, temp ; Записываем то же число в PORTB (потушить светодиод)
out PORTD, temp ; Записываем его же в PORTD (включаем внутр. резисторы)
;--------------------------- Инициализация компаратора
ldi temp, 0x80 ; Выключение компаратора
out ACSR, temp
;-------------------------- Основной цикл
main:
in temp, PIND ; Читаем содержимое порта PD
out PORTB, temp ; Пересылаем в порт PB
rjmp main ; К началу цикла
а это тоже самое но только на сях
есть разница?
#include <tiny2313.h>
void main(void)
{
PORTB=0xFF;//иницилизируем порт как выход
DDRB=0xFF;//присваиваем положительное напрежение на выходе всего порта +5V
PORTD=0x7F;
DDRD=0x00;
while (1)
{
PORTB=PIND;//считываем содержимое порта D и присваиваем его порту B
};
}