📄 ad9850.c
字号:
#include "SPCE061V004.h"
int change;
int ctr_word[5]={0x0,0x00,0x01,0x5d,0x86};///////
int key_value=0;
int key_out;
int key_num;
float a;
//unsigned long int freq_value;
unsigned long int f_value=0;
void step_forword(void);
void step_backword(void);
void sin_send(unsigned long int f_con);
void key(void)
{int i,j;
key_value = *P_IOA_Data;
key_value &= 0x000f; //key
if(key_value)
{
i=4900;
while(i--)
{*P_Watchdog_Clear = 1;}
key_value = *P_IOA_Data;
key_value &= 0x000f; //key
if(key_value)
{
change=1;
switch(key_value)
{
case 0x0001:
step_forword();
break;
case 0x0002:
step_backword();
break;
case 0x0004:
sin_send(2000000);
break;
}
}
key_out = 1;
while(key_out)
{
*P_Watchdog_Clear = 1;
key_value = *P_IOA_Data;
key_value &= 0x000f; //key
if(key_value)
key_out = 1;
else
key_out = 0;
}
}
}
void wr_word(void)
{int i,j;
*P_IOB_Buffer |= 0x4000;
for(j=0;j<5;j++)
{
*P_IOB_Buffer=ctr_word[j]; //5 byte ctr_word
*P_IOB_Buffer |= 0x8000;
*P_IOB_Buffer &= 0x7fff;
}
*P_IOB_Buffer |= 0x4000; //update
}
void step_forword(void)
{int i,j;
f_value |= ctr_word[1];
f_value <<= 8;
f_value |= ctr_word[2];
f_value <<= 8;
f_value |= ctr_word[3];
f_value <<= 8;
f_value |= ctr_word[4];
f_value += 0x22f4;
if(f_value > 0x50000000)
f_value = 0x50000000;
ctr_word[4] = f_value;
ctr_word[4] &= 0x00ff;
f_value >>= 8;
ctr_word[3] = f_value;
ctr_word[3] &= 0x00ff;
f_value >>= 8;
ctr_word[2] = f_value;
ctr_word[2] &= 0x00ff;
f_value >>= 8;
ctr_word[1] = f_value;
ctr_word[1] &= 0x00ff;
wr_word();
}
void step_backword(void)
{int i,j;
f_value |= ctr_word[1];
f_value <<= 8;
f_value |= ctr_word[2];
f_value <<= 8;
f_value |= ctr_word[3];
f_value <<= 8;
f_value |= ctr_word[4];
f_value -= 0x22f4;
if(f_value < 0x015d86)
f_value = 0x015d86;
ctr_word[4] = f_value;
ctr_word[4] &= 0x00ff;
f_value >>= 8;
ctr_word[3] = f_value;
ctr_word[3] &= 0x00ff;
f_value >>= 8;
ctr_word[2] = f_value;
ctr_word[2] &= 0x00ff;
f_value >>= 8;
ctr_word[1] = f_value;
ctr_word[1] &= 0x00ff;
wr_word();
}
void sin_send(unsigned long int f_con)
{int i,j;
a=89.4784853*f_con;
f_value = (long)a;
ctr_word[4] = f_value;
ctr_word[4] &= 0x00ff;
f_value >>= 8;
ctr_word[3] = f_value;
ctr_word[3] &= 0x00ff;
f_value >>= 8;
ctr_word[2] = f_value;
ctr_word[2] &= 0x00ff;
f_value >>= 8;
ctr_word[1] = f_value;
ctr_word[1] &= 0x00ff;
wr_word();
}
int main()
{ int i,j;
change=0;
i=19500;
while(i--)
{*P_Watchdog_Clear = 1;}
wr_word();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -