2013-04-03 4 views
0

У меня 20 с лишним лет в программировании, начиная с pascal 7 до delphi. Я хочу начать программирование микроконтроллеров с помощью C, а инструмент, рекомендуемый большинством электроники, - winAVR с записной книжкой для программистов. Я установил программное обеспечение и хотел бы начать компилировать код, и я потерял, по меньшей мере, и не могу найти простую документацию, чтобы попасть на трек, где я могу начать тестировать код. Может ли кто-нибудь предложить хороший стартовый материал?Начиная с winAVR

+1

Эти 20 нечетных лет также видели рост интернет-поисковых систем, которые сегодня стали достаточно продвинутыми, чтобы дать вам множество результатов, если вы ищете «учебник по winavr». – Michael

+2

Перейдите на веб-сайт Atmel для получения ресурсов. Кроме того, AVR Studio от atmel - отличная среда для AVR. Если вы еще этого не сделали, купите оценочную карточку. – UncleO

+0

@michael Я упомянул 20 лет, потому что это, по-видимому, первое, что попробует человек. Иными словами, я не ищу информацию о дорожных правилах, я пытаюсь выяснить, как запустить машину. Есть сотни примеров кода, чтобы учиться, но пропустите, как C-код скомпилирован, потому что они предполагают, что это общеизвестно. – Clinton

ответ

0

В то время как для обычной первой программы PC является "Hello, World!", во встроенном мире (один недостаток дисплеев, как минимум, чтобы начать с, что эквивалентно является blinky led: прикрепить светодиод в какой-то выходной контакт процессора (don't forget the current-limiting resistor!: вы нужен резистор в серии с LED), и вы делаете LED мигания вы можете найти много мигающего светодиода для AVR, но мы можем написать один прямо здесь:.

// The next define tells delay.h what your CPU speed is, assuming 1Mhz 
#define F_CPU 1000000UL 
#include <util/delay.h> 

main() { 
    while(1) { // loop forever 
     DDRB = 0xFF;  // Set the direction of all pins 
         // on port B to OUTPUT (can change to some other port) 
     PORTb = 0xFF; // Set all pins on port B high (can change to some other port) 
     _delay_ms(1000); // Wait one second; 
     PORTb = 0x00; // Set all pins on port B low (can change to some other port) 
     _delay_ms(1000); // Wait one second; 
    } 
} 

Он должен собрать на WinAVR и нагрузки правильно. Измените PORTB и DDRB на другой порт. Обратите внимание, что эта программа меняет все контакты на этом порту: так что если ваш порт B имеет 8-контактный s, все они будут мигать, подвешенный к ним. Не забывайте о токоограничивающих резисторах и о том, что светодиоды являются направленными: они работают только при подключении в одном направлении, а не в другом.

 Смежные вопросы

  • Нет связанных вопросов^_^