|
/*
*******************************************************************************
** Daxinganling@hotmail.com
** Filename : main.c
** Abstract : TMH1 square wave OUT.
** APIlib : NEC78K0SKX1+.lib V1.70 [7 Dec. 2006]
**
** 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) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|