⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 at91sam7s64温度控制程序
💻 C
字号:
/*============================文件信息===========================*/
/*文   件   名:main.c                                           */
/*创   建   人:葛康                                             */
/*最后修改日期:2006年2月24日                                    */
/*文 件 描  述: 无                                              */
/*===============================================================*/

#include "AT91SAM7S64.h"
#include "lib_AT91SAM7S64.h"

extern void led_init(void);
extern void led_show(unsigned short ad_data);
extern void led_on(char led, char index);
extern void led_delay(void);
extern void pwm_init(void);
extern void pwm_duty_update(unsigned int duty,unsigned int i);
extern void pwm_period_update(unsigned int period,unsigned int i);
extern void adc_init(void);
extern unsigned short ad4_read(void);
extern unsigned short ad6_read(void);
extern unsigned short ad7_read(void); 



/*****************************************************************/
/*函数名称:delay                                                */
/*功能描述:延时函数                                             */
/*输入参数:i                                                    */
/*输出参数:无                                                   */
/*****************************************************************/
void delay(int time)
{ 
   int i;
  for(i=time;i>0;i--);
}



/*****************************************************************/
/*函数名称:min                                                  */
/*功能描述:求两个数中的较小数                                   */
/*输入参数:x,y                                                  */
/*输出参数:无                                                   */
/*****************************************************************/
int min(int x,int y)
{
  if(x<=y) return x;
  else return y;
}


/*****************************************************************/
/*函数名称:main                                                 */
/*功能描述:主函数                                               */
/*输入参数:无                                                   */
/*输出参数:无                                                   */
/*****************************************************************/
void main(void)
{
    int          ad_val[3],ad_value,k;
    unsigned int pwm_buffer,pwm_period,pwm_duty;
    char i;
    //led_init();
    pwm_init();
    adc_init();
    for(i=0;i<3;i++) {ad_val[i]=0;}
    
 while(1)	
	{  
	AT91F_WDTRestart(AT91C_BASE_WDTC);          //看门狗复位
	
/**************************ADC部分*******************************/	

	ad_val[0]=ad4_read();                          //读取AD值
	ad_val[1]=ad6_read();
	ad_val[2]=ad7_read();
	
    k=min(ad_val[0],ad_val[1]);
    ad_value=min(k, ad_val[2]);


/**************************PWM部分*******************************/
     
    pwm_period=3160;
  
    pwm_buffer=ad_value/12;
    pwm_buffer=pwm_buffer+5;
    pwm_buffer=pwm_period*pwm_buffer;
    pwm_duty=pwm_buffer/100;
    
    delay(1800);
   
 	pwm_duty_update(pwm_duty,0);
	pwm_duty_update(pwm_duty,1);

	                      
    }
	   
}

⌨️ 快捷键说明

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