خوب کاری نداره که این کار رو بایکی از سه تا تایمر atmega8می تونی انجام بدی .
با یه تایع delayهم می تونی .
مثلا اگر فرکانس میکرو1MHzباشه اینجوری میشه:
PORTX.x=1
delay_ms(200
PORTX.x=0
delay_ms(200)
این توی هر ثانیه پنج بار خاموش روشن میشه :biggrin:
خوب کاری نداره که این کار رو بایکی از سه تا تایمر atmega8می تونی انجام بدی .
با یه تایع delayهم می تونی .
مثلا اگر فرکانس میکرو1MHzباشه اینجوری میشه:
PORTX.x=1
delay_ms(200
PORTX.x=0
delay_ms(200)
این توی هر ثانیه پنج بار خاموش روشن میشه :biggrin:
سلام :smile:
شما باید اول اون LED رو خاموش کنین.
[code=c]DDRA.0=1; // A.0: out put
PORTA.0=1; // A.0(LED): OFF
[/code]
بعدش باید زمانی که میخواین رو با تایمر بسازین. مثلا 100mS (توی هر ثانیه 5 بار روشن و خاموش بشه)
بعدش توی وقفه تایمر این دستور رو بنویسین:
[code=c]PORTA.0 = !(PORTA.0);[/code]
این دستور هر بار که وقفه اجرا میشه (یعنی هر 100mS)، پورت A.0 رو NOT میکنه (اگه 0 هست، 1 میکنه و اگه 1 هست 0 میکنه)
برای آشنایی با تایمر و ساخت زمان دلخواه، کتاب "میکروکنتلرهای AVR" آقای جابر الوندی رو بخونین
سلام :smile:
شما باید اول اون LED رو خاموش کنین.
[code=c]DDRA.0=1; // A.0: out put
PORTA.0=1; // A.0(LED): OFF
[/code]
بعدش باید زمانی که میخواین رو با تایمر بسازین. مثلا 100mS (توی هر ثانیه 5 بار روشن و خاموش بشه)
بعدش توی وقفه تایمر این دستور رو بنویسین:
[code=c]PORTA.0 = !(PORTA.0);[/code]
این دستور هر بار که وقفه اجرا میشه (یعنی هر 100mS)، پورت A.0 رو NOT میکنه (اگه 0 هست، 1 میکنه و اگه 1 هست 0 میکنه)
برای آشنایی با تایمر و ساخت زمان دلخواه، کتاب "میکروکنتلرهای AVR" آقای جابر الوندی رو بخونین
مشکل اصلی من اینه که میخوام adc رو یه جوری راه اندازی کنم که تو هر ثانیه 5بار نمونه برداره ؟؟؟؟
دیدگاه