پاسخ : آموزش winavr و avrlib
سلام به همگی
من یه کد نوشتم واسه صفحه کلید ، با اینتراپت ، ولی انگار نه انگار که اینتراپت کار کنه !
میشه بگین اشکالمون چیه ؟
[ltr]
ممنون از شما
سلام به همگی
من یه کد نوشتم واسه صفحه کلید ، با اینتراپت ، ولی انگار نه انگار که اینتراپت کار کنه !
میشه بگین اشکالمون چیه ؟
[ltr]
کد PHP:
#include <avr/io.h>
#include <util/delay.h>
#include "avrlibdefs.h"
#include <avr/interrupt.h>
int key;
ISR(TIMER0_OVF_vect)
{
TCNT0 = 50;
PORTB =0b01111111;
if (avr(PINB).P0==0) key=1;
if (avr(PINB).P1==0) key=2 ;
_delay_ms(10000);
/* if (bit_is_set(PINB, 1)) PORTD=3;
if (bit_is_set(PINB, 0)) PORTD=4;
PORTB =0b10111111;
if (bit_is_set(PINB, 3)) PORTD=5;
if (bit_is_set(PINB, 2)) PORTD=6;
if (bit_is_set(PINB, 1)) PORTD=7;
if (bit_is_set(PINB, 0)) PORTD=8;
PORTB =0b11011111;
if (bit_is_set(PINB, 3)) PORTD=9;
if (bit_is_set(PINB, 2)) PORTD=10;
if (bit_is_set(PINB, 1)) PORTD=11;
if (bit_is_set(PINB, 0)) PORTD=12;
PORTB =0b11101111;
if (bit_is_set(PINB, 3)) PORTD=13;
if (bit_is_set(PINB, 2)) PORTD=14;
if (bit_is_set(PINB, 1)) PORTD=15;
if (bit_is_set(PINB, 0)) PORTD=16; */
}
int main()
{
DDRB=0xF0;
PORTB=0x0F;
DDRD=0xFF;
TCCR0 = (1<<CS02)|(1<<CS01)|(1<<CS00);
TCNT0 = 50;
TIMSK |= (1<<TOIE0);
while(1){
PORTD=key;
}
}
ممنون از شما
دیدگاه