连帽 | 有 | 颜色 | 海军蓝色 |
---|
基频不断变化(通过改变top值), ocr1a的双缓冲特性使其更适合于这个应用。 计算公式:fpwm=fclk_io/(2*n*top) 快速参考见 table 47. 波形产生模式的位描述 t/c 的时钟源 t/c 的时钟源可以有多种选择,由cs12:0控制,分别用于高速(低分频)/长时间(高分频)/外部计数场合 一个16位定时器,在8mhz系统时钟驱动下,可以实现us级的高速定时和长达8秒的超长定时,这可是标准51的弱点 cs12 cs11 cs10 说明 0 0 0 无时钟源 (t/c 停止) 0 0 1 clkio/1 ( 无预分频) 0 1 0 clkio/8 ( 来自预分频器) 0 1 1 clkio/64 ( 来自预分频器) 1 0 0 clkio/256 ( 来自预分频器) 1 0 1 clkio/1024 ( 来自预分频器) 1 1 0 外部t1 引脚,下降沿驱动 ...
码信号reg clk_data5; // 5位锁存信号的触发时钟reg[4:0]data5; // 对应 端口信号data5reg [7:0]data_ad; // 对应 端口信号data_adreg clk_cs5,clk_cs6;reg clk_cs7,clk_cs8; //详细参考程序//reg aqcs; // 对应 端口信号aqcs//reg bqcs_out; // 对应 端口信号bqcs_out//reg clk_cs10; //详细参考程序//reg clk_cs13; //详细参考程序//reg clk_cs18; //详细参考程序reg print_me; //打印机写片选 (wr | cs)//wire [7:0] data_reg_top; // 子模块的数据接口rs232//reg good_link; // busy 和 rs232的数据分配信号//-----------------------宏定义(地址分配)----------- ...
a interrupt_handler isr_timer1:15unsigned int counter;void main(){ counter = 300; tccr1b |= (1<<wgm12); ocr1a = 2000; ddrb = 0xf0; sei(); timsk |= (1<<ocie1a); tccr1b |= 1<<cs10; while(1);}void isr_timer1(){ if(counter != 0) { counter--; } else { counter = 300; portb ^= 1<<pb7; }}但是接在pb7的led并没有按照600ms闪烁一次。不知道是什么原因,还望高手指点。 ...
1<<com1b1 | 1<<com1b0 | 0<<foc1a |0<<foc1b | 0<<wgm11 | 0<<wgm10 out tccr1a,t1 ;一分频 ldi t1,0<<icnc1 | 0<<ices1 | 1<<wgm13 | 0<<wgm12 | 0<<cs12 | 0<<cs11 | 1<<cs10 out tccr1b,t1 ldi t1,low(fck) ldi t2,high(fck) out icr1h,t2 out icr1l,t1 ;icr1 保存了定时器相位与频率修正pwm计数的顶部数值,底部为0 ldi t1,low(fck/2) ldi t2,high(fck/2) out ocr1bh,t2 out ocr1bl,t1 仿真的时候,发现计数器在计数到icr1的时候不会停止,而是 ...