⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于NEC单片的机的程序源码,关于PWM输出的程序.
💻 C
字号:
/*
*******************************************************************************
**  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;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -