اطلاعیه

Collapse
No announcement yet.

ایجاد یک موج مربعی به فرکانس یک هرتز بروی PB0

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ایجاد یک موج مربعی به فرکانس یک هرتز بروی PB0

    با سلام

    خوب چون اولین تجربه من توی این انجمن هست اسم تایپیک رو نمیدونستم دقیقا باید چی بزارم اما با توجه به گفته های جناب بلورچیان فکر کنم باید عنوان برنامه رو بنویسم که نوشتم

    ایجاد یک موج مربعی با فرکانس 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
    	}
    فایل های پیوست شده
لطفا صبر کنید...
X