OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5038|回复: 1

单片机怎么么样输出50HZ的正弦波?

[复制链接]

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2015-4-11
在线时间
12 小时
发表于 2015-4-20 18:30:53 | 显示全部楼层 |阅读模式
5金钱

#include "DrvConfig.h"
#include "SM39R08A3.h"//"SM39R08A5.h"
#include "global.h"
#include "math.h"
u16 n_10ms=0,sinVal=0;
bit b_10ms=0;
void GPIO_Init()
{
     P0M0 = 0x00;
  0M1 = 0xff;

  1M0 = 0x00;
  1M1 = 0x02;      //P1.1 短路调电流
}
void Clock_Int()
{
  CKCON = 0x00; 
  FCON=0x01;    //定时器时钟频率 Fosc

        TMOD = 0x01;
        TH0 = 0x0A9;
        TL0 = 0x9A;
        ET0 = 1;
  TF0=0;
        TR0 = 1;


}
void WDT_LVC_Int()
{
  TAKEY=0x55;
  TAKEY=0xaa;
  TAKEY=0x5a;
  WDTC=0xf7;

     LVC|=0x81;
  IELVI=1;
}
main()
{
 
   GPIO_Init();
   EA = 0; 
   Clock_Int();
   WDT_LVC_Int();
   EA =1;  
   PWMC = 0xa1;
   while(1)
   {
    
   }
}
void Int_Time0(void)  interrupt 1
{
    u16 x=0;
 TH0 = 0x0A9;
    TL0 = 0x9A;
 b_10ms=1;
  if(b_10ms==1)
   {
      b_10ms=0;
   n_10ms++;
   if(n_10ms==10)
   {
    for(x=0;x<360;x++)
  {
       sinVal=255*(1+sin(x*(6.28/360)))/2;
    PWMD0H = (sinVal>>8)|(0<<7);
    PWMD0L = (sinVal);
    PWMMDH = 1023>>8; 
    PWMMDL = (1023);   
  }
   n_10ms=0;
 }
 }
 
}
请勿各位大神,这程序应该怎么改,才能输出50HZ的正弦波,谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2015-4-20 23:25:27 | 显示全部楼层
博观而约取,厚积而薄发。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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