dongdaxing 发表于 2008-8-29 13:00:04

菜鸟第五贴 TMH1 方波输出 动态改变周期

/*
*******************************************************************************
**Daxinganling@hotmail.com
**Filename :        main.c
**Abstract :        TMH1 square wave OUT.
**APIlib :        NEC78K0SKX1+.lib V1.70
**
**Device :        uPD78F9234
**
**Compiler :        NEC/CC78K0
**
*******************************************************************************
*/
/*
*******************************************************************************
**Include files
*******************************************************************************
*/
#include "macrodriver.h"
#include "system.h"
#include "port.h"

extern void hdwinit(void);

#define TM_TMH1_SQUAREWIDTH 0xc7

int time_init= TM_TMH1_SQUAREWIDTH;

void TMH1_Init()
{
        ClrIORBit(TMHMD1, 0x80);                /*STOP COUNTER OPERATION*/
       
        SetIORBit(MK0, 0x10);                        /* INTTMH1 disable */
        ClrIORBit(IF0, 0x10);
       
        TMHMD1 |= ( 1 << 4 );          /* Internal countclock 2M*/       
       
        SetIORBit(TMHMD1, 0x1);                   /* enable output */
        ClrIORBit(P4, 0x04);
        ClrIORBit(PM4, 0x04);                        /* P42/TOH1 */
        ClrIORBit(TMHMD1, 0x2);      /*SET square MODE*/
       
        CMP01 = TM_TMH1_SQUAREWIDTH;   /*0xc7 set squarewidth*/
}

void TMH1_Start( )
{
        SetIORBit(TMHMD1, 0x80);
}

void TMH1_Stop( )
{
        ClrIORBit(TMHMD1, 0x80);
}

void delay(int ms)
{
        while(--ms);
}

void main( void )
{
        /* TODO. add user code */
       
        hdwinit();
       
        TMH1_Stop();
        TMH1_Init();
        TMH1_Start();
       
        while(1)
        {
                CMP01 = time_init-15;   /*change the squarewidth dynamic*/
                delay(100);
                time_init = CMP01;
                if(time_init < TM_TMH1_SQUAREWIDTH-150 )
                time_init =TM_TMH1_SQUAREWIDTH;
        }
}

方波输出 动态改变周期ourdev_394213.rar(文件大小:32K) (原文件名:PWM.rar)

lanhuangzhong 发表于 2008-11-5 13:44:50

你好,请问你能写出用NEC单片机驱动直流无刷电机转动的程序吗?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是不是先读取HALL位置的信号,然后采集,通过A/D转换成数字信号,然后接着该怎么做呢.



还有就是如何用PWM控制电机桥臂的开关.
页: [1]
查看完整版本: 菜鸟第五贴 TMH1 方波输出 动态改变周期