?? ad9850.c
字號:
/********************************************************
并行驅動 AD9850
FRUD -- B0
REST -- B1
WCLK -- B2
數據接口 D0-D7 -- A0-A7
ADout 定義輸出頻率
********************************************************/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/sfr_defs.h>
#include <avr/delay.h>
#define uint unsigned int
#define uchar unsigned int
#define SET_1(a,b) a|=(1<<b)
#define CLE_0(a,b) a&=~(1<<b)
#define FRUD_1 SET_1(PORTB,0)
#define FRUD_0 CLE_0(PORTB,0)
#define REST_1 SET_1(PORTB,1)
#define REST_0 CLE_0(PORTB,1)
#define WCLK_1 SET_1(PORTB,2)
#define WCLK_0 CLE_0(PORTB,2)
#define ADout 1000000 // 定義 輸出 頻率 ADout 1k
#define IO9850 PORTA
void initIO(void)
{
DDRA = 0xff;
DDRB = 0xff;
}
void init9850(void)
{
WCLK_0;
FRUD_0;
REST_1;
REST_0;
}
void UPDATE(void)
{
FRUD_1;
FRUD_0;
}
void sendword(uchar dat)
{
IO9850 = dat ;
WCLK_1;
WCLK_0;
}
void startAD(void)
{
long uint dat;
dat =(long uint ) ADout * 34.359738;
sendword(0);
sendword((uchar)(dat>>24));
sendword((uchar)(dat>>16));
sendword((uchar)(dat>>8));
sendword((uchar)dat);
UPDATE();
}
int main(void)
{
initIO();
init9850();
startAD();
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -