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

📄 timer3.c

📁 利用zigbee进行定位的程序
💻 C
字号:
//----------------------------------------------------//
//-------Institute Of  Computing Technology-----------//
//------------Chinese Academic  Science---------------//
//-----中国科学院计算技术研究所先进测试技术实验室-----//
//----------------------------------------------------//

/**
 * www.wsn.net.cn
 * @copyright:nbicc_lpp
 * @data:2005.11.22
 * @version:0.0.1
 * @updata:$
 *
 */
#include "timer3.h"
 	// Timer/Counter3 Clock source: System Clock
	// Timer/Counter3 Clock value: Set
	// Timer/Counter3 Mode: CTC-OCRa
	// Timer/Counter3 Output: A: Disconnected, B: Disconnected, C: Disconnected

//-------------------------------------------------------------------------------
inline   void Timer3_intDisable(void)
{
      { os_atomic_t _nesc_atomic = os_atomic_start();
       	{
	ETIMSK &= 0xef;
	}
      os_atomic_end(_nesc_atomic); }
}

 

inline    uint8_t Timer3_fire(void){


  
		
  	
  /*
 
  cc2420_writetxfifo(((demopacket->length)-1), (uint8_t *) demopacket);
  (demopacket->dsn)++;
  demopacket->address.destination_address=(++demopacket->address.destination_address)&0x02;
   
  cc2420_setrxmode();

  Leds_greenToggle();
  Leds_redToggle();
  Leds_yellowOff();
  */
  
}

uint8_t Timer3_setIntervalAndScale(uint16_t interval, uint8_t scale)
{

  if (scale > 7) {
    return FAIL;
    }

{ os_atomic_t _nesc_atomic = os_atomic_start();
    {
      
	OCR3A = interval;//this is the scale
	OCR3B = 0x0000;
	OCR3C = 0x0000;
	TCNT3 = 0x0000; //this is the counter
	TCCR3A = 0x00;//Output: A: Disconnected, B: Disconnected, C: Disconnected,WGM[1..0]=00
	scale |= 0x08;//
	TCCR3B |= scale;//clk/(scale),WGM[3..2]=01
	TCCR3C = 0x00;//
	ETIMSK |= 0x10;//OCIE3 is enable 
	
    }
    os_atomic_end(_nesc_atomic); }
  return SUCCESS;
}

void  Timer3_sethalfsymbol(uint16_t symbols)
{  	
 
      uint16_t halfsymbols;
      halfsymbols=symbols*2;
      Timer3_setIntervalAndScale(halfsymbols, 0x5);
     
}

uint16_t Timer3_setInterval(uint16_t interval)
{
      uint32_t temp;
      //uint16_t temp1;
       temp=TCNT3+interval;
	//temp1=temp;
	if (temp>=65535) temp=temp-65535;
	return (temp);
}

⌨️ 快捷键说明

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