亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fun.c

?? 基于cc1000和avr128處理器的的星形網絡的通信實驗程序源代碼
?? C
字號:
/*
****************************************************************************
*              寧波中科集成電路設計中心  版權所有 Copyright 2005
*						http:\\www.nbicc.com
*文件名:  fun.c
*程序員:  夏鵬		xpsonny@nbicc.com
*主要內容:常用函數
*
*如有問題或BUG,請登錄www.wsn.net.cn 提問或用郵件和作者聯系
****************************************************************************
*/

#include "fun.h"
#include "os.h"
#include "global.h"
//extern uint8_t  OS_LOCAL_ADDRESS;

	/*uint16_t __attribute((__progmem__)) crcTable[256] = { 
		0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 
		0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 
		0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 
		0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 
		0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 
		0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 
		0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 
		0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 
		0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 
		0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 
		0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 
		0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 
		0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 
		0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 
		0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 
		0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 
		0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 
		0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 
		0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 
		0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 
		0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 
		0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 
		0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 
		0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 
		0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 
		0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 
		0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 
		0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 
		0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 
		0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 
		0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 
		0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 };
		*/
	
static uint16_t RandomLFSR_shiftReg;
static uint16_t RandomLFSR_initSeed;
static uint16_t RandomLFSR_mask;
	
static bool HPLPowerManagementM_disabled = TRUE;
	
	enum {
		HPLPowerManagementM_IDLE = 0, 
			HPLPowerManagementM_ADC_NR = 1 << 3, 
			HPLPowerManagementM_POWER_DOWN = 1 << 4, 
			HPLPowerManagementM_POWER_SAVE = (1 << 3) + (1 << 4), 
			HPLPowerManagementM_STANDBY = (1 << 2) + (1 << 4), 
			HPLPowerManagementM_EXT_STANDBY = (1 << 3) + (1 << 4) + (1 << 2)
	};
	
	void OSH_SET_GREEN_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) |= 1 << 1;
	}
	
	void OSH_SET_YELLOW_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) |= 1 << 0;
	}
	
	void OSH_SET_RED_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) |= 1 << 2;
	}
	
	void OSH_SET_FLASH_SELECT_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) |= 1 << 3;
	}
	
	void OSH_MAKE_FLASH_CLK_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) |= 1 << 5;
	}
	
	void OSH_MAKE_FLASH_OUT_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) |= 1 << 3;
	}
	
	void OSH_MAKE_FLASH_SELECT_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) |= 1 << 3;
	}
	
	void OSH_CLR_SERIAL_ID_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) &= ~(1 << 4);
	}
	
	void OSH_MAKE_SERIAL_ID_INPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) &= ~(1 << 4);
	}
	
	void OSH_MAKE_SPI_OC1C_INPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) &= ~(1 << 7);
	}
	
	void OSH_MAKE_MISO_INPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) &= ~(1 << 3);
	}
	
	void OSH_MAKE_CC_PCLK_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) |= 1 << 6;
	}
	
	void OSH_MAKE_CC_PDATA_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) |= 1 << 7;
	}
	
	void OSH_MAKE_CC_PALE_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) |= 1 << 4;
	}
	
	void OSH_MAKE_PW0_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 0;
	}
	
	void OSH_MAKE_PW1_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 1;
	}
	
	void OSH_MAKE_PW2_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 2;
	}
	
	void OSH_MAKE_PW3_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 3;
	}
	
	void OSH_MAKE_PW4_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 4;
	}
	
	void OSH_MAKE_PW5_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 5;
	}
	
	void OSH_MAKE_PW6_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 6;
	}
	
	void OSH_MAKE_PW7_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x14 + 0x20) |= 1 << 7;
	}
	
	void OSH_MAKE_CC_CHP_OUT_INPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) &= ~(1 << 6);
	}
	
	void OSH_MAKE_GREEN_LED_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) |= 1 << 1;
	}
	
	void OSH_MAKE_YELLOW_LED_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) |= 1 << 0;
	}
	
	void OSH_MAKE_RED_LED_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x1A + 0x20) |= 1 << 2;
	}
	
	result_t RandomInit(void)
	{
		uint8_t random = OS_LOCAL_ADDRESS;
		{ uint8_t atomic = AtomicStart();
		{
			//RandomLFSR_shiftReg = (119 * 119 * (OS_LOCAL_ADDRESS + 1)&0xffff);
			RandomLFSR_shiftReg = 119 * 119 * (random + 1);
			RandomLFSR_initSeed = RandomLFSR_shiftReg;
			//RandomLFSR_mask = 137 * 29 * (OS_LOCAL_ADDRESS + 1);
			RandomLFSR_mask = 137 * 29 * (random + 1);
		}
		AtomicEnd(atomic); }
		return SUCCESS;
	}
	
	void OSH_SET_CC_PCLK_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) |= 1 << 6;
	}
	
	void OSH_SET_CC_PDATA_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) |= 1 << 7;
	}
	
	void OSH_SET_CC_PALE_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) |= 1 << 4;
	}
	
	void OSH_MAKE_MOSI_INPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) &= ~(1 << 2);
	}
	
	void OSH_MAKE_SPI_SCK_INPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) &= ~(1 << 1);
	}
	
	void OSH_CLR_CC_PALE_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) &= ~(1 << 4);
	}
	
	void OSH_CLR_CC_PDATA_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) &= ~(1 << 7);
	}
	
	void OSH_CLR_CC_PCLK_PIN(void)
	{
		* (volatile unsigned char *)(0x12 + 0x20) &= ~(1 << 6);
	}
	
	void OSH_MAKE_CC_PDATA_INPUT(void)
	{
		* (volatile unsigned char *)(0x11 + 0x20) &= ~(1 << 7);
	}
	
	int OSH_READ_CC_PDATA_PIN(void)
	{
		return (* (volatile unsigned char *)(0x10 + 0x20) & (1 << 7)) != 0;
	}
	
	uint8_t GetPowerLevel(void)
	{
		uint8_t diff;
		
		if (* (volatile unsigned char *)(0x37 + 0x20) & ~((1 << 1) | (1 << 0))) {
			
			return HPLPowerManagementM_IDLE;
		}
		else {
			if (* (volatile unsigned char *)(0x0D + 0x20) & (1 << 7)) {
				return HPLPowerManagementM_IDLE;
			}
			else {
				if (* (volatile unsigned char *)(0x06 + 0x20) & (1 << 7)) {
					return HPLPowerManagementM_ADC_NR;
				}
				else {
					if (* (volatile unsigned char *)(0x37 + 0x20) & ((1 << 1) | (1 << 0))) {
						diff = * (volatile unsigned char *)(0x31 + 0x20) - * (volatile unsigned char *)(0x32 + 0x20);
						if (diff < 16) {
							return HPLPowerManagementM_EXT_STANDBY;
						}
						return HPLPowerManagementM_POWER_SAVE;
					}
					else 
					{
						return HPLPowerManagementM_POWER_DOWN;
					}
				}
			}
		}
	}
	
	void PowerAdjustment(void)
	{
		uint8_t foo;
		uint8_t mcu;
		
		foo = GetPowerLevel();
		mcu = * (volatile unsigned char *)(0x35 + 0x20);
		mcu &= 0xe3;
		if (foo == HPLPowerManagementM_EXT_STANDBY || foo == HPLPowerManagementM_POWER_SAVE) {
			mcu |= HPLPowerManagementM_IDLE;
			while ((* (volatile unsigned char *)(0x30 + 0x20) & 0x7) != 0) {
				asm volatile ("nop");}
			
			mcu &= 0xe3;
		}
		mcu |= foo;
		* (volatile unsigned char *)(0x35 + 0x20) = mcu;
		* (volatile unsigned char *)(0x35 + 0x20) |= 1 << 5;
	}
	
	uint8_t PowerManagementAdjust(void)
	{
		uint8_t mcu;
		
		if (!HPLPowerManagementM_disabled) {
			OSPostTask(PowerAdjustment);
		}
		else 
		{
			mcu = * (volatile unsigned char *)(0x35 + 0x20);
			mcu &= 0xe3;
			mcu |= HPLPowerManagementM_IDLE;
			* (volatile unsigned char *)(0x35 + 0x20) = mcu;
			* (volatile unsigned char *)(0x35 + 0x20) |= 1 << 5;
		}
		return 0;
	}
	
	void OSH_CLR_YELLOW_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) &= ~(1 << 0);
	}
	
	void OSH_MAKE_MOSI_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) |= 1 << 2;
	}
	
	void OSH_MAKE_MISO_OUTPUT(void)
	{
		* (volatile unsigned char *)(0x17 + 0x20) |= 1 << 3;
	}
	
	void OSH_CLR_RED_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) &= ~(1 << 2);
	}
	
	void OSH_CLR_GREEN_LED_PIN(void)
	{
		* (volatile unsigned char *)(0x1B + 0x20) &= ~(1 << 1);
	}
	
	/*uint16_t crcByte(uint16_t oldCrc, uint8_t byte)
	{
		
		uint16_t *table = crcTable;
		uint16_t newCrc;
		
		asm ("eor %1,%B3\n"
			"\tlsl %1\n"
			"\tadc %B2, __zero_reg__\n"
			"\tadd %A2, %1\n"
			"\tadc %B2, __zero_reg__\n"
			"\tlpm\n"
			"\tmov %B0, %A3\n"
			"\tmov %A0, r0\n"
			"\tadiw r30,1\n"
			"\tlpm\n"
			"\teor %B0, r0" : 
		"=r"(newCrc), "+r"(byte), "+z"(table) : "r"(oldCrc));
		return newCrc;
	}
	*/
	uint16_t RandomLFSRGen(void)
	{
		bool endbit;
		uint16_t tmpShiftReg;
		
		{ uint8_t atomic = AtomicStart();
		{
			tmpShiftReg = RandomLFSR_shiftReg;
			endbit = (tmpShiftReg & 0x8000) != 0;
			tmpShiftReg <<= 1;
			if (endbit) {
				tmpShiftReg ^= 0x100b;
			}
			tmpShiftReg++;
			RandomLFSR_shiftReg = tmpShiftReg;
			tmpShiftReg = tmpShiftReg ^ RandomLFSR_mask;
		}
		AtomicEnd(atomic); }
		return tmpShiftReg;
	}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区三区网站| 午夜精品免费在线| 91精品国产欧美一区二区18| 91免费观看视频| 不卡一卡二卡三乱码免费网站| 欧美在线小视频| 色婷婷亚洲一区二区三区| 色综合久久天天综合网| 在线视频综合导航| 欧美日韩dvd在线观看| 在线播放日韩导航| 欧美成人精品1314www| 精品国产乱码久久久久久夜甘婷婷| 精品日韩在线观看| 国产精品色婷婷| 亚洲精品写真福利| 手机精品视频在线观看| 蜜芽一区二区三区| 国产一区不卡在线| 91看片淫黄大片一级| 欧美久久久久久久久久| 亚洲精品在线观看网站| 国产三级一区二区| 亚洲精品久久久蜜桃| 日韩中文字幕91| 国产成人av在线影院| 91成人免费在线视频| 欧美不卡123| 亚洲天堂免费在线观看视频| 亚洲成人av一区二区三区| 国产真实乱对白精彩久久| 91在线一区二区| 精品少妇一区二区三区视频免付费 | 欧美极品xxx| 亚洲国产中文字幕| 国产乱码精品一区二区三区忘忧草 | 亚洲欧美另类图片小说| 日韩电影在线免费看| 成人性生交大片免费看中文网站| 91久久精品网| 国产亚洲一区字幕| 亚洲成年人网站在线观看| 岛国一区二区在线观看| 欧美精品色综合| 亚洲视频免费在线| 国产美女久久久久| 日韩欧美一级二级| 一级特黄大欧美久久久| 国产成人小视频| 亚洲精品在线三区| 日本不卡在线视频| 欧美性一级生活| 中文字幕在线不卡| 高清成人在线观看| 2019国产精品| 精品一区二区成人精品| 6080yy午夜一二三区久久| 亚洲欧美日韩在线| 91免费观看视频在线| 国产精品无圣光一区二区| 国产一区二区在线看| 91精品欧美久久久久久动漫 | 经典三级视频一区| 这里是久久伊人| 亚洲一区二区三区四区在线| 9人人澡人人爽人人精品| 一区二区三区在线免费视频| www.性欧美| 自拍偷自拍亚洲精品播放| 大美女一区二区三区| 久久久国产午夜精品| 久久99精品国产麻豆不卡| 欧美一区二区久久久| 全国精品久久少妇| 精品剧情v国产在线观看在线| 婷婷一区二区三区| 欧美不卡一区二区| 国产一区二区美女诱惑| 国产亚洲综合在线| av电影天堂一区二区在线 | 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩视频专区在线播放| 婷婷开心激情综合| 日韩一本二本av| 国产激情视频一区二区在线观看| 国产免费成人在线视频| 色综合天天综合在线视频| 一区二区三区资源| 制服丝袜日韩国产| 韩国视频一区二区| 国产精品久久网站| 欧美三级在线播放| 极品少妇xxxx精品少妇| 国产欧美一二三区| 欧美三级中文字幕在线观看| 免费三级欧美电影| 中文字幕亚洲不卡| 51精品视频一区二区三区| 国产精品 日产精品 欧美精品| 国产精品色一区二区三区| 欧美日韩性生活| 国内成人精品2018免费看| 亚洲视频香蕉人妖| 欧美不卡激情三级在线观看| 本田岬高潮一区二区三区| 午夜av电影一区| 中文字幕av资源一区| 69久久99精品久久久久婷婷| 国产激情偷乱视频一区二区三区| 亚洲一级二级在线| 久久精品亚洲精品国产欧美| 欧美日韩国产色站一区二区三区| 国产自产高清不卡| 五月婷婷欧美视频| 国产精品色哟哟| 精品国产一区二区三区久久久蜜月| 波多野结衣91| 国产精品18久久久久| 亚洲一二三四区不卡| 久久久国产一区二区三区四区小说 | 日精品一区二区| 中文字幕亚洲欧美在线不卡| 欧美成人福利视频| 日本高清不卡在线观看| 国产一区二区三区免费在线观看| 一区二区三区欧美视频| 国产日韩高清在线| 日韩一二在线观看| 精品视频在线免费看| 91在线免费播放| 从欧美一区二区三区| 美女视频一区二区三区| 亚洲高清在线精品| 亚洲人成在线播放网站岛国| 欧美白人最猛性xxxxx69交| 精品91自产拍在线观看一区| 日本福利一区二区| 99精品国产99久久久久久白柏| 久久国产人妖系列| 日韩在线一二三区| 亚洲一区视频在线| 亚洲精品乱码久久久久久黑人| 欧美极品另类videosde| 久久九九99视频| 久久久午夜精品| 2024国产精品| 久久综合av免费| 久久久久久一级片| 国产日韩精品一区二区三区| 久久久国产一区二区三区四区小说| 777色狠狠一区二区三区| 欧美性猛交xxxx乱大交退制版 | 国产精品自拍三区| 精品一区二区国语对白| 黄网站免费久久| 国内外成人在线| 国产成人在线视频网站| 成人午夜视频在线观看| 不卡的电视剧免费网站有什么| 91在线视频18| 欧美色综合天天久久综合精品| 欧美亚一区二区| 欧美一级高清大全免费观看| 精品久久久影院| 中文幕一区二区三区久久蜜桃| 国产精品福利电影一区二区三区四区| 亚洲欧洲av一区二区三区久久| 亚洲青青青在线视频| 偷拍日韩校园综合在线| 免费的国产精品| 粉嫩欧美一区二区三区高清影视| 成人免费毛片嘿嘿连载视频| 色呦呦国产精品| 日韩一级片网站| 亚洲欧洲日本在线| 亚洲成人动漫一区| 黄色小说综合网站| 色综合视频在线观看| 日韩一区二区三区免费观看| 久久久精品免费免费| 亚洲一区二区三区视频在线| 久久超碰97中文字幕| 国产成都精品91一区二区三| 91浏览器在线视频| 精品国产免费人成电影在线观看四季| 亚洲国产精品激情在线观看| 亚洲国产综合在线| 粉嫩aⅴ一区二区三区四区五区| 在线免费观看一区| 久久男人中文字幕资源站| 日韩一区在线免费观看| 看电影不卡的网站| 在线观看视频91| 国产日产欧美一区| 麻豆一区二区在线| 色乱码一区二区三区88| www成人在线观看| 日韩成人一级大片| 91精品办公室少妇高潮对白| 久久久亚洲午夜电影|