欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求教,哪位高手幫我看一下這個程序,剛開始學習AVR
[打印本頁]
作者:
LWJ
時間:
2013-8-15 11:38
標題:
求教,哪位高手幫我看一下這個程序,剛開始學習AVR
哪位高手哪位高手幫我看一下這個程序,用定時器0的CTC模式產生方波,波形從PB3口輸出
#include <iom16v.h>
#include <macros.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
}
//TIMER0 initialize - prescale:64
// WGM: CTC
// desired value: 20KHz
// actual value: 19.231KHz (-4.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x00; //set count
OCR0 = 0xFD; //set compare
TCCR0 = 0x1B; //start timer
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x02; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//
void main(void)
{
init_devices();
PORTB=0x00;
DDRB=0xff;
while(1)
{};
//insert your functional code here...
}
作者:
vmbjn888
時間:
2013-12-2 22:51
for(i=0;i<=7;i++) //輪流
{
PORTA=~(1<<i); //各位依次置 0
_delay_ms(200); //延是200ms
}
這個好像依次不起來吧
i=0時,i變成二進制為0000 0000左移一位還是0000 0000再取反PORTA變為1111 1111,燈全滅
i=1時,i變成二進制為0000 0001左移一位是0000 0010再取反PORTA變為1111 1101,第二個燈亮
i=2時,i變成二進制為0000 0010左移一位是0000 0100再取反PORTA變為1111 1011,第三個燈亮
i=3時,i變成二進制為0000 0011左移一位是0000 0110再取反PORTA變為1111 1001,第二個和第三個燈同時亮
i=4時,i變成二進制為0000 0100左移一位是0000 1000再取反PORTA變為1111 0111,第四個燈亮
i=5時,i變成二進制為0000 0101左移一位是0000 1010再取反PORTA變為1111 0101,第二個和第四個燈同時亮
i=6時,i變成二進制為0000 0110左移一位是0000 1100再取反PORTA變為1111 0011,第三個和第四個燈同時亮
i=7時,i變成二進制為0000 0111左移一位是0000 1110再取反PORTA變為1111 0001,第二個、第三個和第四個燈同時亮
改成這樣應該可以
int i,j,k;
i=1;
for(j=0;j<8;j++) //循環8次,8位LED輪流點亮
{
PORTA=~i; //反向輸出
_delay_ms(200); //延時200ms
i=1<<i; //左移一位
}
作者:
vmbjn888
時間:
2013-12-2 22:53
int i,j,k;
i=1;
for(j=0;j<8;j++) //循環8次,8位LED輪流點亮
{
PORTA=~i; //反向輸出
_delay_ms(200); //延時200ms
i=i<<1; //左移一位
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1