با سلام
خوب چون اولین تجربه من توی این انجمن هست اسم تایپیک رو نمیدونستم دقیقا باید چی بزارم اما با توجه به گفته های جناب بلورچیان فکر کنم باید عنوان برنامه رو بنویسم که نوشتم
ایجاد یک موج مربعی با فرکانس 1 هرتز بر روی PB0:
1. برنامه رو با کامپایلر AVRGCC در محیط AVR STUDIO نوشتم .
2. توضیحات رو هم در داخل برنامه به صورت کامند ارائه کردم
3. جناب بلورجیان میبینید یه میکرویی رو انتخاب کردید که نه AVR SIMULATOR ساپورتش میکنه نه پرتئوس :nice:
4. در پیرو قسمت 3 آقا من معذرت میخوام چون هدر برد نداشتم نتونستم تو عمل تست کنم ببخشید!
برنامه :
خوب چون اولین تجربه من توی این انجمن هست اسم تایپیک رو نمیدونستم دقیقا باید چی بزارم اما با توجه به گفته های جناب بلورچیان فکر کنم باید عنوان برنامه رو بنویسم که نوشتم
ایجاد یک موج مربعی با فرکانس 1 هرتز بر روی PB0:
1. برنامه رو با کامپایلر AVRGCC در محیط AVR STUDIO نوشتم .
2. توضیحات رو هم در داخل برنامه به صورت کامند ارائه کردم
3. جناب بلورجیان میبینید یه میکرویی رو انتخاب کردید که نه AVR SIMULATOR ساپورتش میکنه نه پرتئوس :nice:
4. در پیرو قسمت 3 آقا من معذرت میخوام چون هدر برد نداشتم نتونستم تو عمل تست کنم ببخشید!
برنامه :
کد:
#include <avr/io.h> #include <avr/interrupt.h> void main(void) { #pragma -O0 CLKPR=(1<<CLKPCE); //enable change of the CLKPS bits CLKPR&=~(1<<CLKPCE); // Crystal Oscillator division factor: #pragma -Os DDRB=(1<<DDB0); //PB0 is output // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1000.000 kHz TCCR1B=(1<<CS11); TIMSK1=(1<<TOIE1); // Timer/Counter 1 Interrupt(s) initialization sei(); // Global enable interrupts while(1); } // Timer1 overflow interrupt service routine ISR(TIMER1_OVF_vect) { static unsigned char i=0; // Reinitialize Timer1 value for base time : 5000us*/ TCNT1H=0xEC; TCNT1L=0x78; if(++i==100)PORTB^=(1<<PB0),i=0; //per .5s NOT PB0 }