|
还不是很稳定,硬件完全是是仿照gzhuli 前辈的,2路变一路。学单片机的第一个作品,三天的泡面没白吃,献丑了
在此谢谢gzhuli 前辈
#include<avr/io.h>
#define F_CPU 8000000UL
#define uint unsigned int
#define uchar unsigned char
void Delay_ms(uint i)
{
uint j;
while(i--)
{
for(j=0;j<1200;j++);
}
}
uint get_adc()
{
uint a=0,b=0;
ADMUX=0X60;
ADCSRA=0X87;
Delay_ms(1);
ADCSRA|=0X40;
while(!(ADCSRA&0X10));
a=ADCL;
b=ADCH;
ADCH=0x00;
ADCL=0x00;
ADCSRA&=0Xef;
return b;
}
int ads,m;
int kp=1,ki=0,kd=1;
int temp=0;
int pid()
{
static int n1,n2,n3,res;
n1=get_adc();
res=196+kp*n1*n1/676+(n1-n2)*kd/3;
n3=n2;
n2=n1;
return res;
}
int main(void)
{
DDRA&=~(1<<0);
DDRB|=0x30;
DDRD|=0X30;
PORTB|=0x10;
TCCR1A=0X63;
TCCR1B=0X1B;
while(1)
{
get_adc();
Delay_ms(5);
OCR1A=255;
temp=pid();
if(temp>255)temp=255;
if(temp<0)temp=0;
OCR1B=temp;
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|