📄 mnet_tx.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 + -