Свежие обсуждения
Микроконтроллеры

AVR начинающим - вопросы и ответы

1 39 68

Всем привет!
А почему именно AVR??
Вот хочу начать изучать микроконтроллеры и не знаю с каких начать, какие лучше??
А по поводу AVR есть программаторы через USB??

 

denchik: А по поводу AVR есть программаторы через USB??
Есть.
http://www.ln.com.ua/~real/avreal/

 

Почему AVR?

0) доступные для домашней пайки корпуса (от ДИП до TQFP)
1) Очень легко прошить - 5 проводков на LPT это необходимый минимум. +масса программаторов легких для повторения
2) Удобный ассемблер и хорошая заточка под Си
3) Дешевый и доступный
4) Очень много готовых проектов и примеров под АВР
5) Богатая периферия и единое ядро. По сути дела, АВР контроллер упакован как на войну, в нем есть почти все.
6) Много документации и обучалок (на 38 странице, пару сообщений назад, есть ссылка на мой обучающий курс по этому контроллеру. Пока только ассемблер, скоро завершу разбор всей базовой периферии и начну ковырять Си.)

ему в затылок дышит PIC и до сих пор идут холивары PIC vs AVR. Но мне AVR больше нравится.
Он дешевле, лучше фарширован и ИМХО у него более логичный ассемблер.

 

denchik: Вот хочу начать изучать микроконтроллеры и не знаю с каких начать, какие лучше ?? Советую AVR - и начинайте лучше виртуально в компиляторе CVAVR и в симуляторе PROTEUS - недостатка в компонентах не будет и в PROTEUS около 200 примеров готовых с работе.

Когда почувствуете что начали понимать что к чему, тогда осознано приобретете тот AVR который вам нужен будет для реального устройства.

 

И еще в старый топик загляните - в старый топик загляните

Если хотите реально двигаться вперед то асмом не забивайте голову. В нужном объеме знание асма постепенно придет. Пишите удобно на Си.

 

А можно что-нибудь сделать , типа указателя на конкретный бит битового поля?
Есть массив структур типа:
struct sc {
unsigned char sc1:1;
unsigned char sc2:1;
unsigned char sc3:1;
unsigned char sc4:1;
unsigned char sc8:1;
unsigned char sc7:1;
unsigned char sc6:1;
unsigned char sc5:1;
};
Как бы так запоминать "адрес" некоторого бита?

 

Никак. Минимальная адресуемая единица памяти - байт. Если нужно, запоминайте адрес байта+маску бита. Можете придумать новый тип данных - "битовый" адрес (адрес байта * 8 + номер бита), и написать макросы для работы с таким "адресом".

 

Alexey: Как бы так запоминать "адрес" некоторого бита?

В CVAVR есть тип переменных bit и еще есть союзы и структуры - подробно расписано с примерами в FAQ по микроконтроллерам AVR PIC ARM 8051
http://stream.ifolder.ru/13682489

 

По-моему, можно, если я правильно понял вопрос


struct scnew
{
union bit
{
struct sc;
uchar bitnum[8];
}
}

Тогда обращение к биту sc2 можно делать двумя способами: scnew.sc.bit.sc2 или так: scnew.bit.bitnum[1]

 

chav1961: Никак
Жаль.
chav1961: "битовый" адрес (адрес байта * 8 + номер бита),
Наверно, заморочисто.

GM: scnew.bit.bitnum[1]
А в квадратые скобочки переменную засунуть можно?
И что-то типа указатель на байт и к нему вот это scnew.bit.bitnum[№бита] приделать?