Писане на C програми в Code Vision AVR за контролери без RAM

Малки трикове при работа с Code Vision AVR

по този начин компилаторът ще постави променливата ttp в регистър R12, а променливата tmp в регистрите R10, R11, тъй като променливата int заема два байта.

Стъпка втора, трябва да деактивирате генерирането на код за стартиране, тоест кодът, който се изпълнява преди стартирането на основната програма. За да направите това, в свойствата на проекта

vision

Всичко, което трябва да се премахне, е маркирано в червено.

програми

Ако възнамерявате да използвате прекъсвания във вашата програма, тогава трябва да използвате директивата на препроцесора#pragmasavereg-,, която инструктира компилатора да не записва автоматично регистрите в паметта, когато влиза в процедурата за обработка на прекъсвания.

#pragmasavereg-#pragma regalloc-register char ttp @12;

Освен това, след като напишете програмата и я компилирате, трябва да коригирате изходния asm файл, който ще се намира в работната директория на проекта. В него компилаторът генерира команди за инициализация на стека, които не са в нашите контролери. Трябва да премахнете само 4 реда, които се намират непосредствено преди началото на основната програма:

След това можете да компилирате изходния asm файл. Трябва да направим това, защото го коригирахме малко и хексагонът, който генерира програмата, вече няма да ни подхожда. Това може да стане лесно, в BIN директорията на програмата има компилаторavrasm2.exe, може да се копира в директорията на проекта и да се изпълни командата:avrasm2.exe –fI –omyfile. следователно, за да не пишете едно и също нещо в командния ред много пъти, можете да създадете файл с bat разширение (myfile.bat) и напишете командата в негодаден по-долу, сега за повторно компилиране е достатъчно да го стартирате и в резултат ще получите шестнадесетичен файл, готов за употреба.

Сега относно програмирането на контролера. Специално за вас създадох малко демонстрационно устройство на ATTINY15, състоящо се от контролер, два резистора и светодиод, и го програмирах.

vision

писане

Програмен текст на C, написан на CVAVR 1.24.8d

CVAVR упорито не искаше да шие контролер, но SinaProg се справи доста добре със задачата.

code

Програмистът използва USBTiny

писане

Можете да гледате видео на устройството в действие тук.