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