var1_0, var1_1, var1_2 - одна трёхбайтная переменная (в регистрах),
var2_0, var2_1, var2_2 - вторая.
Сравнение будет выглядеть очень просто:
cp var1_0,var2_0
cpc var1_1,var2_1
cpc var1_2,var2_2
ну а дальше в зависимости от флага C переход на метку...
Как в Студии выносить процедуры и функции в отдельный файл (и потом подключать их)?
Где и в каком порядке они будут находиться в итоге? Можно ли задать им местоположение?
Если у меня в основном файле будет массив данных, не наложатся ли они друг на друга?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Создать файл, вбить в него нужные процедуры, сохранить с именем *.asm, в главном файле проекта подключить директивой .include.
Код вставится ровно в то место, где будет стоять директива .include. Все директивы org выполняются также как и в одном файле, так что если с ними не накосячить, то ничего никуда не наложится, в противном случае компилятор все равно ругнется.
Если в файле только макросы и определения, то имеет смысл ставить до основного кода (например сразу за .include "[имя контроллера]def.inc".
Последний раз редактировалось Engineer_Keen Чт фев 27, 2014 11:49:44, всего редактировалось 1 раз.
Я смотрю в симуляторе. Сделал новый проект, и то-же мой код (и ваш тоже) перестал выдавать ошибку.
В картинке вроде для 168PA третье значение. непонятное мне.
Вроде не было варнингов, а появились.
AVR Simulator: Invalid opcode 0xffff at address 0x000008
Варнинги исчезли, все в порядке, спасибо.
Значения в картинке не совпадают с текстом:
The 32 general purpose working registers, 64 I/O Registers, 160 Extended I/O Registers, and
the 512/1024/1024/2048 bytes of internal data SRAM in the ATmega48PA/88PA/168PA/328P
are all accessible through all these addressing modes.
Как узнать, сколько же памяти в моей 168PA?