mình mới nghịch về điện tử mới kiểm dc con srf 05.mình tự nghĩ cái code này nhưng ko biết đúng không mong các bác kiểm tra giúp cái.em gà lám
#include<avr\io.h>
#include<util\delay.h>
#include<avr\interrupt.h>
#ifndef sbi
#define sbi(port,bit) (port)&=~(1<<(bit))
#endif
#ifndef cbit
#define cbi(port,bit) (port)|=(1<<(bit))
#endif
char dem;
int main()
{
DDRB=0xff;
PORTB=0xff;
DDRD=0x00;
PORTD=0x00;
PORTC=0xFF;
PORTC=0x00;
MCUCR=0x02;
GICR=0x40;
while(1)
{
cbi(PORTC,5);
_delay_ms(11);
sbi(PORTC,5);
while(bit_is_clear(PORTD,2));
TCNT1=0;
TCCR1B=0x02;
sei();
if(TCNT1=5000) TCCR1B=0x00;
if((dem>30)&&(dem<500)) PORTB=0x00;
_delay_ms(50);
}
}
ISR(INT0_vect)
{
dem=TCNT0;
TCCR1B=0x00;
}
#include<avr\io.h>
#include<util\delay.h>
#include<avr\interrupt.h>
#ifndef sbi
#define sbi(port,bit) (port)&=~(1<<(bit))
#endif
#ifndef cbit
#define cbi(port,bit) (port)|=(1<<(bit))
#endif
char dem;
int main()
{
DDRB=0xff;
PORTB=0xff;
DDRD=0x00;
PORTD=0x00;
PORTC=0xFF;
PORTC=0x00;
MCUCR=0x02;
GICR=0x40;
while(1)
{
cbi(PORTC,5);
_delay_ms(11);
sbi(PORTC,5);
while(bit_is_clear(PORTD,2));
TCNT1=0;
TCCR1B=0x02;
sei();
if(TCNT1=5000) TCCR1B=0x00;
if((dem>30)&&(dem<500)) PORTB=0x00;
_delay_ms(50);
}
}
ISR(INT0_vect)
{
dem=TCNT0;
TCCR1B=0x00;
}
Comment