Список

SlickEdit
IAR-AVR
MT-50x
avr_nullptr
empty4
empty5

Ускореный ввод в IAR AVR 4.xx


Создание workspace:
File->New->Workspace
Project->Create New Project
    ToolChain->AVR
    Project templates:
        C->main

OK, указать имя и куда сохранить файл проекта


Так же сразу сохранить File->Save workspace

Новый проект

Project->Options либо правой кнопкой на имени проекта в Workspace
Category->General options
    Target->Processor configuration="--cpu=m128, ATmega128"
    Memory model=Small
    Library Configuration->Library=CLIB
    Library Options->Printf formatter=Small
    Library Options->Scanf formatter=Medium
    Heap Configuration->CLIB heap size->HEAP=0
    System->Data stack (CSTACK)->Size (bytes)=100
    System->Return address stack (RSTACK)->Size (levels): 20
    System->Enable bit definitions in I/O-Include files=TRUE
Category->C/C++ Compiler
    Optimizations->Size=None
    Output->Generate debug information=TRUE
    Preprocessor->Include paths: (one per line)=$PROJ_DIR$
    Preprocessor->Defined symbols: (one per line)=AVR
Category->Linker
    Output->Format->Allow C-SPY-specific extra output file=TRUE
    Extra Output->Generate extra output file=TRUE
    Extra Output->Format->Output format=intel-standart (если код будет получатся более 64К выбрать intel-extended )
    Debugger->Setup->Driver=Simulator
Так же можно настроить саму IDE
Tools->Options
    Project->Reload last workspace at startup=TRUE
	Stack->Warnings->Log and alert=TRUE
Всё настроено для работы

Первая программа

Пино-дерганье


Порто-дерганье


файл inavr.h дает возможность воспользоваться следующими функциями ( перечислены наиболее употребительные):
__no_operation(); // Собственно ассемблерный nop
__delay_cycles( 345 ); // Задержка в тактах. Аргумент только константа
__enable_interrupt(); // разрешить глобальное прерывание
__disable_interrupt(); // наоборот
__sleep(); //
__watchdog_reset(); // сброс watchdog
__flash // спецификатор для размещения переменных во флеш
_SPM_PAGEWRITE(Addr) // из названия понятно
_SPM_GET_LOCKBITS()
_SPM_GET_FUSEBITS()
__EEPUT(ADR,VAL)
__EEGET(VAR,ADR)

файл ioavr.h служит для описания архитектуры микроконтроллера, выбранного в опциях проекта (то есть для понимания для компилятора "что же такое PORTA, OCR0, UDR, ADCH и т.д." )

вектор прерывания записывается так


список прочих векторов можно узнать так: вызывать контексное меню (правая кнопка мышки) на слове ADC_vect, и выбрать Go to defenition of ADC_vect
ADC_interrupt - это не зарезервированное слово, писать можно как угодно









Последнее редактирование: 09.07.2015 23:31:27