|
大家好!
ATtiny13 的寄存器要如何设置?我用的是AVR Studio 4.18版 ,汇编语言,看了ATtiny13 数据表的 “寄存器概述”,从地址0x00到0x3F,除了保留的都被使用作特殊寄存器了,我现在程序需要用到十七个寄存器,来保存一些数据,就从0x40地址到0x50定义,定义方法如下:
.DEF OUT1=0x40; 定义输出1寄存器
.DEF OUT2=0x41; 定义输出2寄存器
.DEF IN1=0x42; 定义输入1寄存器
.DEF IN2=0x43; 定义输入2寄存器
.DEF COUNT1=0x44; 定义键值1寄存器
.DEF COUNT2=0x46; 定义键值2寄存器
;
;
.DEF SAXIN=0x50; 定义刷新用寄存器
编译提示错误, error: syntax error, unexpected INTEGER, expecting REGISTER
试着把0x40,改成R40编译提示也是错误,error: syntax error, unexpected SYMBOL, expecting REGISTER
我该如何去定义这17个寄存器呢?不与特殊寄存器起冲突。应该怎样写代码?地址又指向哪里为好? 请大家指点。
ATtiny13 数据表在 “寄存器概述”中,地址0x09到0x13,提示的是“保留” ,在表格的底部,说明“保留”的寄存器不可写操作,而在第7页中的“通用工作寄存器”描述中,R13到R17所对应的地址在0x0D至0x11,在数据表的一些代码例子中也看到R16和R17在应用,既然保留了,怎么还可以用呢?这二种描述不是有冲突了吗? 请解释一下 。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|