求救贴!!那位大虾用过ATxmega128a1啊,关于计数器问题
如题,我之前用过51,AVR,他们的寄存器没有那么复杂,现在用Xmega遇到问题了,希望大虾们帮忙 {:cry:}在线着急啊 有大虾帮忙指点一下 本帖最后由 z421868436 于 2013-3-27 11:49 编辑用过Atxmega32A4其实应该也没那么复杂
atmle官网上面有应用文档,也有例子的
可以下载下来看一下
有什么问题吗? 看看avr studio中的DEMO z421868436 发表于 2013-3-27 11:36 static/image/common/back.gif
用过Atxmega32A4其实应该也没那么复杂
atmle官网上面有应用文档,也有例子的
可以下载下来看一下
#include "avr_compiler.h"
#include <util/delay.h>
#include "clksys_driver.h"
#include "TC_driver.h"
#define uchar unsigned char
#define uint unsigned int
void sysclk_initial(void)
{
/*Enable internal 32 MHz ring oscillator and wait until it's
*stable. Divide clock by two with the prescaler C and set the 16M
*32 MHz ring oscillator as the main clock source.
*/
CLKSYS_PLL_Config( OSC_PLLSRC_RC2M_gc, 16 );
CLKSYS_Enable( OSC_PLLEN_bm );
CLKSYS_Prescalers_Config( CLK_PSADIV_1_gc, CLK_PSBCDIV_1_1_gc );
do {} while ( CLKSYS_IsReady( OSC_PLLRDY_bm ) == 0 );
CLKSYS_Main_ClockSource_Select( CLK_SCLKSEL_PLL_gc );
}
uint16_t period_ticks = 31250; // 31250*1024/32M = 1 second period.
void T0_init()//定时器0 定时1秒
{
TCD0.PER = 31250;//设定对比值
TCD0.CTRLA = TC_CLKSEL_DIV1024_gc;;//配置时钟分频
TCD0.INTCTRLA = TC_OVFINTLVL_MED_gc;
TCD0.INTCTRLA=(TCD0.INTCTRLA&~TC0_OVFINTLVL_gm)|TC_OVFINTLVL_MED_gc;//中断级别
PMIC_CTRL |= PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm|PMIC_LOLVLEN_bm;//PIMC级别选择与上面中断相对应
}
int main( void )
{
PORTC.DIR=0x07;//方向输出
PORTB.DIR=0xFF;
sysclk_initial();
T0_init();
sei();
while (1);
}
ISR(TCD0_OVF_vect)
{
PORTC_OUTTGL = 0x01;
}
我现在实现了 定时 灯可以1秒闪烁但是 不知道怎么设置 计数功能,谁能指点一二 怎么设置那个端口做计数 计数方式 上升还是下降 计数初值怎么给 就三条语句 但是就只不知道怎么设置 {:cry:}大家帮帮忙 二胖1988 发表于 2013-3-27 16:13 static/image/common/back.gif
大家帮帮忙
我也在用xmega16D4,ADC模块结果老是不准确,试了各种方法,12位有符号,内部1V参考电压,单端模式。。。。
页:
[1]