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

📄 udp.c~

📁 使用avr--cc2420模块程序,需要原理图的联系 QQ:120304948
💻 C~
字号:
#include <mega128.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


#include "typedef.h"

#include "app.h"
#include "attention.h"
#include "g20modem.h"
#include "g20serialdrv.h"

#include "rtc.h"
#include "serialdrv.h"
#include "timer.h"
#include "UDP.h"
#include "protocol.h"

SPSTATUS my_udp_status;

void udp_rcv_proc(BYTE data)
{
	my_udp_status.buffer[my_udp_status.empty ++] = data;
	if(my_udp_status.empty >= G20MAXLEN)
	{
		my_udp_status.empty = 0;
	}
	
	if(my_udp_status.empty > SPOVERFLOW)
	{
	    my_udp_status.overflow = TRUE;
	}
}

void udp_sp_init()
{
	my_udp_status.buffer[0] = (BYTE) 0x00;
	my_udp_status.data = 0;
	my_udp_status.empty = 0;

	memset(my_udp_status.buffer, 0x00, SPMAXLEN);
}

unsigned char udp_sp_not_empty()
{
	return !(my_udp_status.data == my_udp_status.empty);
}

BYTE udp_sp_getchar()
{
	BYTE c = 0;

	if(my_udp_status.empty != my_udp_status.data)
	{
		c = my_udp_status.buffer[my_udp_status.data ++];
		if(my_udp_status.data >= G20MAXLEN)
		{
			my_udp_status.data = 0;
		}
		return (c);
	}
	else
	{	
		return (BYTE)0x00;
	}
}

void udp_sp_flush()
{
	my_udp_status.data = my_udp_status.empty;
}

void udp_sp_init_buf()
{
	my_udp_status.data = 0;
	my_udp_status.empty = 0;
}

void udp_sp_send(flash BYTE * pBuf)
{
	while(*pBuf)
	{
        wdr();
//#error "send error"	
	}
}

void udp_sp_proc()
{

    my_udp_status.timeout = timer_get_g20_sp_timeout();
    if((my_udp_status.overflow | my_udp_status.timeout) == TRUE)
    {
        //process g20 serial port data
        if(my_udp_status.overflow == TRUE)
        {
            my_udp_status.overflow = FALSE;
        }
        if(my_udp_status.timeout == TRUE)
        {
            my_udp_status.timeout = FALSE;
        }

		ProtocolProc();
    }
}

⌨️ 快捷键说明

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