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

📄 main.c

📁 dspic开发控制程序,有助开发pic单片机程序
💻 C
字号:
#define __dsPIC30F6014__

#include <p30f6014.h>
#include <dsp.h>
#include "common.h"
#include "lcd.h"
#include "menu.h"
#include "codec.h"
#include "atod.h"
#include "timers.h"
#include "gettime.h"
#include "procsignal.h"
#include "soundgen.h"

//主程序
int main(void)
{
int max,maxpos;
	PORTD = 0xFFFF;			  //关闭所有的LED
	TRISDbits.TRISD0 = 0;	//LED位设为输出
	TRISDbits.TRISD1 = 0;
	TRISDbits.TRISD2 = 0;
	TRISDbits.TRISD3 = 0;
	InitTimers();
	TimeDelay(20);	
	InitLcd();
	InitMenu();
	InitAD();
	InitCodec();
	InitProcSignal();
	InitGetTime();
	InitSoundGen();
	while(1)	//主循环
	{
		ServiceMenu();	//菜单操作
		ServiceLCD();	  //LCD显示及画图
 		if(SemA.CodecTxDataRdy)	//如果缓冲已满,开始处理
		{//倍频为8xPLL最大时间为3.1毫秒
			SemA.CodecTxDataRdy = FALSE;
			//对缓冲内的信号进行处理
			ServiceSound( pActiveTxBuf );
		}
		else if(SemA.CodecRxDataRdy)
		{//倍频为4xPLL最大时间为2.5毫秒
			SemA.CodecRxDataRdy = FALSE;
			//准备对缓冲区中的数据画图
			max = VectorMax(PROC_BLOCK_SIZE, pActiveRxBuf, &maxpos);
			if(max>30000)	//接近峰值则LED1闪亮
				LED1_ON
			else
				LED1_OFF
			ProcInput( pActiveRxBuf);
			if(CurrentMenu >= MENU_SIGNAL) 
				PlotTime(pActiveRxBuf);//画时钟
			PlotPendulum();		       //画钟摆
		}
		else	//当编码解码器缓冲中的数据未就绪时执行以下的例程
		{//倍频为4xPLL最大时间为780微秒
	 		if(SemA.SecRdy)	//每1秒执行一次
			{
				FindSecSync();
		 		if(SemA.SecLocked)
				{
					FindMinSync();
					ProcDataBit();
				}
				IncTime();
				DisplayTime();
				SemA.SecRdy = FALSE;
			}
		}
	}
}

⌨️ 快捷键说明

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