问一个AVR单片机关于传送数据的问题
如果我定义了一个下面的变量unsigned long int dds_no;
而我想把这个变量的内容以8位并行数据的形式传送给DDS芯片,可是这个4字节的频率控制字我需要分4次传送,每次传送需要用其他I/O口模拟数字逻辑脉冲来锁定这一数据,请问我应该如何操作.
可以将dds_no 赋值给另一个变量来实现吗?比如:
unsined char i;
unsigned long int dds_no;
unsigned char dds_temp;
for(i=0;i<4;i++)
{
dds_temp=dds_no>>(24-8*i);
}
这样可以实现吗?还是需要用其他的方法?? 最好的方法是:将1个4个字节的dds_no与1个4个元素的char数组定义成共同体使用,看看C的书. 谢谢马老师~!~!我以前是用51的汇编的,现在刚开始用AVR,从来没用过共用体这种格式,您看我这样定义是对的吗?
union dds
{
unsigned long int fqcwd;
unsigned char temp;
}dds;
void main(void)
{ DDRB=0xff;
PORB=0xff;
unsigned char i;
dds.fqcwd=0x3f564812;
for(i=3;i>=0;i--)
{
PORTB=dds.temp;
}
} 还有一个问题,12864的液晶显示问题,我可不可以只显示一列中的某一个点后就退出程序呢?因为我想做扫频仪,利用12864点阵液晶作显示,所以想尽量加快程序运行速度~!~!不知道这样可不可行~!~!
页:
[1]