菜鸟第五贴 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) 你好,请问你能写出用NEC单片机驱动直流无刷电机转动的程序吗? 是不是先读取HALL位置的信号,然后采集,通过A/D转换成数字信号,然后接着该怎么做呢.
还有就是如何用PWM控制电机桥臂的开关.
页:
[1]