Estoy trabajando con un ATMEGA328P, haciendo un poco de código USART.
Utilicé asm vinculado con C, con no menos de 7 errores de construcción.
Todos aquellos fueron iguales "El número debe ser positivo y menor de 64".
Sí, he definido __SFR_OFFSET en 0 y _SFR_ASM_COMPAT en 1. No tengo problemas al acceder a los puertos, pero cuando intento esta línea
#define __SFR_OFFSET 0
#define _SFR_ASM_COMPAT 1
#include <avr/io.h>
#define PORT PORTD
#define LSB 0
#define XCK 4
.macro Blank
CBI PORT, LSB
.endm
.macro Black
SBI PORT, LSB
.endm
.org 0x13
//*Emulated DMA*
//R18 <-- [Z], Z++
//USART <-- R18
//if Z=0, Z=1024
ld r18, Z+
out UDR0, r18
cp ZH, r1
cpc ZL, r1
brne Normal
ldi ZL, 0x00
ldi ZH, 0x02
Normal:
reti