اطلاعیه

Collapse
No announcement yet.

سوال در مورد خوندن و نوشتن روی پین atmega32A

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

    سوال در مورد خوندن و نوشتن روی پین atmega32A

    سلام
    من تازه شروع کردم به کار با میکروکنترلرها؛
    برنامه های میخواستم بنویسم که 3 تا پین از پورت A رو بخونه و تا زمانی که 1 بودن سه تا پین رو پورت D رو 1 کنه؛
    تو محیط Atmel Studio کار میکنم؛ ( قبلا با کدویژن جواب گرفتم ولی علاقه مندم تو محیط اتمل کار کنم)
    این کد منه:
    کد:
    #define F_CPU 8000000UL#define F_CPU 8000000UL
    #include <avr/io.h>
    #include <util/delay.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <avr/interrupt.h>
    
    
    
    int cnt=0;
    int in1=0, in2=0, in3=0, out1=0, out2=0, out3=0;
    
    int main (void)
    {
    	DDRA = 0x00;
    	DDRD = 0xff;
    	DDRC=0xff;
    
    	TIMSK |= (1 << TOIE1); // Enable overflow interrupt
    	sei(); // Enable global interrupts
    
    	TCCR1B |= (1 << CS11); 
    
    	for (;;)
    	
    	{
    	in1= PINA & 0x01;
    	in2= PINA & (0x01 << 1);
    	in3= PINA & (0x01 << 2);
    	out1= PORTD | 0x01;
    	out2= PORTD | (0x01 << 1);
    	out3= PORTD | (0x01 << 2);
    
    	
    	
    	}
    }
    
    ISR(TIMER1_OVF_vect)
    {
    
    	if (TIFR &(1<<OCF1A))
    	{
    			if (in1 !=0) {out1=1;}
    			else {out1=0;}
    			if (in2 !=0) {out2=1;}
    			else {out2=0;}
    			if (in3 !=0) {out3=1;}
    			else {out3=0;}	
    
    		if (PINA & (1 << PA0 & 1<<PA1 & 1<<PA2))
    		{
    			cnt++;
    			TIFR = (1<<OCF1A); // Reset timer value
    			PORTD |= (0x01 << 6);
    		}
    
    
    		
    	}
    
    }
    مشکل اینه که وقتی فایل هگز رو تو Proteus میبرم کار نمیکنه؛ ممنونم میشم کمک کنید.

    تو proteus به پین های PA0 و PA1 و PA2 سویچ وصل کردم و به پین های PD0 و PD1 و PD2 ؛ LED وصل کردم؛
لطفا صبر کنید...
X