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

📄 mnet_tx.c

📁 一个完整的用AVR写的电话交换机程序 希望对从事安防的开发者有用
💻 C
字号:
#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
//#include <avr/signal.h>
#include <inttypes.h>
#include "main.h"
#include <avr/eeprom.h>

unsigned char GetBufPointer(void)
{
	unsigned char j;

	if (mMNetTxCn>=cMNetTxPacketNm)		// Buffer is Full
	{
		mMNetTxCn=cMNetTxPacketNm;				
		j= mMNetTxPt;			// Save at the Start Pos
		mMNetTxPt++;
		if (mMNetTxPt>= cMNetTxPacketNm ) mMNetTxPt=0;
	}
	else if (!mMNetTxCn) { j=0;mMNetTxPt=0;mMNetTxCn=1; }  // Buffer Not Full
	else
	{	
		j = mMNetTxCn + mMNetTxPt;
		if (j>=cMNetTxPacketNm ) j=j-cMNetTxPacketNm;
		mMNetTxCn++;				
	}

	return j;
}



void  fnTxdecode(void)  //  解码
{

	unsigned char j,k,mCS;
    j=GetBufPointer();
	
	mMNetTxBuf[j].Buf[0] = 8; 
	mMNetTxBuf[j].Buf[1] = 0x08; 
	mMNetTxBuf[j].Buf[2] = 0x11; 
	mMNetTxBuf[j].Buf[3] = 0;   //命令单元ID
	mMNetTxBuf[j].Buf[4] =  mID[0];
    mMNetTxBuf[j].Buf[5] =  KeyName[0];  //按键代码编号

	mMNetTxBuf[j].Buf[6] =  mName[0];      //控制指令 
	mMNetTxBuf[j].Buf[7] =  mName[1];
	mCS =0;
	for (k=1; k<8; k++) mCS-= mMNetTxBuf[j].Buf[k];
	mMNetTxBuf[j].Buf[8] = mCS;

	if (!TCCR1B){ MNetInitIdel();}


}












⌨️ 快捷键说明

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