"); //-->
/*********************************************************************
功能: 配置DAC输出正弦波控制LED亮度
*********************************************************************/
#include<ADuC7026.h>
void delay(int lengh)
{
while(lengh>0)
lengh--;
}
void SysClkInit(void)
{
PLLKEY1=0xAA;
PLLCON="0x01"; //PLL配置
PLLKEY2=0x55;
POWKEY1=0x01;
POWCON="0x00"; //CPU时钟配置为41.78MHz
POWKEY2=0xF4;
}
// Table is placed in Flash/EE
const static unsigned short TableS[64] = {
0x07FF, 0x08C8, 0x098E, 0x0A51, 0x0B0F, 0x0BC4, 0x0C71, 0x0D12,
0x0DA7, 0x0E2E, 0x0EA5, 0x0F0D, 0x0F63, 0x0FA6, 0x0FD7, 0x0FF5,
0x0FFF, 0x0FF5, 0x0FD7, 0x0FA6, 0x0F63, 0x0F0D, 0x0EA5, 0x0E2E,
0x0DA7, 0x0D12, 0x0C71, 0x0BC4, 0x0B0F, 0x0A51, 0x098E, 0x08C8,
0x07FF, 0x0736, 0x0670, 0x05AD, 0x04EF, 0x043A, 0x038D, 0x02EC,
0x0257, 0x01D0, 0x0159, 0x00F1, 0x009B, 0x0058, 0x0027, 0x0009,
0x0000, 0x0009, 0x0027, 0x0058, 0x009B, 0x00F1, 0x0159, 0x01D0,
0x0257, 0x02EC, 0x038D, 0x043A, 0x04EF, 0x05AD, 0x0670, 0x0736
};
unsigned long int i = 0;
void main()
{
int a="1",b=0;
SysClkInit();
while(1)
{
// DAC0控制
i=0;
DAC0CON = 0x12; // 使用内部核时钟更新DAC,输出范围0-2.5v
DAC0DAT = 0x08000000; // 调整坐标,从中间开始
while(a)
{
DAC0DAT = (TableS[i] << 16);
delay(200000);
i++;
i &= 0x003f;
if(i==63)
{ a="0"; b="1"; }
}
DAC0DAT = (0x0fff << 16);
delay(500000);
// DAC1控制
i=0;
DAC1CON = 0x12; // 使用内部核时钟更新DAC,输出范围0-2.5v
DAC1DAT = 0x08000000; // 调整坐标,从中间开始
while(b)
{
DAC1DAT = (TableS[i] << 16);
delay(200000);
i++;
i &= 0x003f;
if(i==63)
{ a="1"; b="0"; }
}
DAC1DAT = (0x0fff << 16);
delay(500000);
}
}
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。