智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2598|回复: 1
打印 上一主题 下一主题

[其它] 请高手指出错误,重赏,谢谢!

[复制链接]

6

主题

91

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4900

论坛元老奖章

威望
346
贡献
4356
兑换币
0
注册时间
2010-11-30
在线时间
99 小时
跳转到指定楼层
1#
发表于 2010-11-30 07:57:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"/* derivative-specific definitions */
#define key1   PORTE_PE2
#define key2   PORTE_PE3
#define key3   PORTE_PE4
float x;
uint sintab[128]={
128,134,140,147,153,159,165,171,177,182,188,193,199,204,209,213,
218,222,226,230,234,237,240,243,245,248,250,251,253,254,254,255,
255,255,254,254,253,251,250,248,245,243,240,237,234,230,226,222,
218,213,209,204,199,193,188,182,177,171,165,159,153,147,140,134,
128,122,116,109,103,97,91,85,79,74,68,63,57,52,47,43,
38,34,30,26,22,19,16,13,11,8,6,5,3,2,2,1,
1,1,2,2,3,5,6,8,11,13,16,19,22,26,30,34,
38,43,47,52,57,63,68,74,79,85,91,97,103,109,116,122} ;
//*****延时函数*******//
void delay(int ms)
{
int i;
while(ms--)
{
  for(i=0;i<120;i++);
  }
} //*****PIT初始化******//
void PIT_init(void)
{
PITCFLMT_PITE=0;          //定时中断通道0关
PITCE_PCE0=1;             //定时器通道0使能
PITINTE_PINTE0=1;         //定时器中断通道0中断使能
PITMTLD0=199;             //8位微定时器初值设定
PITLD0=6000-1;            //16位定时器初值设定
PITCFLMT_PITE=1;          //定时器通道0使能
}
//*********时钟初始化********//
void PLL_INIT()
{
                                       
REFDV=2;
SYNR=1;
while(!(CRGFLG&0x08));
CLKSEL=0x80;
}
//********PWM模块*********//
void PWM_INIT( )
{
               PWME_PWME0=0x00;            //PWM 禁止
               PWMPER0=0x03;               //时钟预分频寄存器设置
               PWMSCLA=15;                 //时钟设置
               PWMSCLB=15;                 //时钟设置
               PWMCLK_PCLK0=1;             // 时钟源的选择
               PWMPOL_PPOL0=1;             //极性设置
               PWMCAE_CAE0=0;              //对齐方式设置
               PWMCTL=0x00;                //控制寄存器设置              
               PWMPER0=255;                //对齐方式设置
               PWMDTY0=0;                  //对齐方式设置
               PWME_PWME0=1;               //PWM使能
}


//*********按键函数(防抖)**************//
void key(void)
{
           if(key1==0)
             {
               delay(1);
               if(key1==0)  x=1;
             }
               if(key2==0)
              {
               delay(1);
               if(key2==0 ) x=2;
             }  
            if(key3==0)
            {
             delay(1);
             if(key3==0 )   x=3;
            }
}
//******主函数********//
void main()
{
  PLL_INIT();
PIT_init();
  PWM_INIT();
  DDRE=0x00;
   
  
          EnableInterrupts;   
  for(;;)
   {
     key();
         _FEED_COP(); /* feeds the dog */
        } /* loop forever */
  /* please make sure that you never leave main */
}
#pragma CODE_SEG NON_BANKED   
void interrupt 66 seg( )
{   static int  i=0,j=255,a=255,b=0;
    PITTF_PTF0=1;
     if(x==1)    {//*********三角波**********//
              
              if(i<255)
                   { i++;
                     PWMDTY0=i;
                   }
                  
              if(i==255)
             {
                j--;
                PWMDTY0=j;
                if(j==0)
                {
                  i=0 ;
                j=255;
                }
              }
                }
     if(x==2)   { //*********锯齿波**************//
      
            
               a--;
               PWMDTY0=a;
              if(a==0)  
              
               a=255;
              }
     if(x==3)  {//*********正弦波 ********//
           
            b++;
            PWMDTY0=sintab[b];
            if(b>128)
            b=0;
            
     }
}

1

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
威望
359
贡献
100
兑换币
0
注册时间
2010-10-20
在线时间
6 小时
2#
发表于 2011-1-13 17:59:52 | 只看该作者
你装了操作系统啊?怎么看不懂啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-7 06:07 , Processed in 0.417474 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表