Em đang dùng con Atmega 16, dùng thạch anh 12MHz. Vậy nhưng khi mô phỏng thử em thấy em để Delay_ms(1000); thì thời gian thực lên tới 12 giây. Có cao thủ nào giải thích giúp nguyên nhân và cách giải quyết không ạ. Em cảm ơn!
VỀ delay trong avr
Collapse
X
-
-
Em cũng đang gặp trục trặc với hàm delay, mô phỏng proteus thì OK, nhưng nạp vào ATmega8 thì không được, nhờ các bác cao thủ giải quyết giùm, xin đội ơn!!!
Cụ thể thế này: em cần tạo xung điều khiển trễ so với một xung cho trước một khoảng thời gian, em viết code để nạp vào ATmega8 như sau:
em mô phỏng với proteus thì OK như hình sau đây:#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
int main(void)
{
DDRC|=(1<<1)|(1<<3); //2 chan nay de phat xung dk
MCUCR|=(1<<ISC01)|(1<<ISC00); //bao ngat canh len chan INT0
GICR|=(1<<INT0); //cho phép ngat INT0
sei(); // cho phep ngat VDK
while(1){}
return 0;
}
ISR(INT0_vect)
{
_delay_us(4000); //tre 4000us khi co xung vao
PORTC|=(1<<1)|(1<<3);
_delay_us(400);
PORTC=0;
_delay_us(400);
PORTC|=(1<<1)|(1<<3);
_delay_us(400);
PORTC=0; // phat chum 2 xung do rong 400us
}
nạp vào ATmega8 chạy thực tế thì nó thế này:
em mới làm quen với món AVR, trình độ còn non kém, mong các bác chỉ giáo!!!
Comment
Bài viết mới nhất
Collapse
-
-
bởi bqvietĐám UPS cửa cuốn đời cổ vẫn chạy 1 biến áp sắt từ vừa để hạ áp điện lưới nạp bình điện, vừa để kích áp bình điện thành sóng vuông đầu ra đấy thôi. Kiểu tiết kiệm này đã có từ mấy chục năm nay. Sơ đồ đại loại như link
https://www.homemade-circuits.com/si...rchargerchang/...-
Channel: Nguồn!
06-09-2026, 16:49 -
-
bởi dinhthuong92Không biết nó thiết kế kiểu gì mà dùng chung được cuộn cảm L cho cả mạch Buck hạ áp để sạc pin và Boost nâng áp cho Led. Muốn vẽ mạch để xem mà nhiều linh kiện quá, e không kham nổi!
Bác nào có sơ đồ xin up lên cho mọi người tham khảo nhé!...-
Channel: Nguồn!
04-09-2026, 11:09 -
-

Comment