dac.c

来自「nRF24L01详细编程资料」· C语言 代码 · 共 66 行

C
66
字号
//ICC-AVR application builder : 2006-02-12 14:00:00
// Target : ATmega48
// Crystal: 1.000Mhz
// Author:  jackyan

#include "iom48v.h"
#include "macros.h"
#include "Defs.h"
#include "var.h"

void WriteDA(ubyte bright);

#define DAsync 	BIT0
#define DAsclk	BIT1
#define DAout 	BIT2

void InitDAC(void)
{
	WriteDA(Bright);
}

void WriteDA(ubyte bright)
{
	ubyte cnt;
	ubyte temp=0;

	set(DDRB,DAsync);
	set(DDRB,DAsclk);
	set(DDRB,DAout);
	temp=bright>>4;
	cnt=8;		
	while(cnt>0)
		{
			clr(PORTB,DAsync);
			set(PORTB,DAsclk);
			clr(PORTB,DAout);
			if (chk(temp,BIT7))
				set(PORTB,DAout);
			temp<<=1;
			cnt--;
			clr(PORTB,DAsclk);	//0
		}

	bright<<=4;
	temp=bright|0x0f;
	cnt=8;		
	while(cnt>0)
		{
			clr(PORTB,DAsync);
			set(PORTB,DAsclk);
			clr(PORTB,DAout);
			if (chk(temp,BIT7))
				set(PORTB,DAout);
			temp<<=1;
			cnt--;
			clr(PORTB,DAsclk);	//0
		}

	set(PORTB,DAsync);
	set(PORTB,DAsclk);
	set(PORTB,DAout);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?