Tôi hổng bít gì mấy chú này đâu , nhức đầu lắm .
Có xem qua cái code của cậu rồi .
Nếu mà khai báo biến pwm1 ,pmw2 ...
Khi muốn nạp giá trị cho biến thì ( biến = giá trị )
--- Hình như trong mã nguồn cậu lại làm điều ngược lại .
--- Ban đầu :
pwm1 =pmw2 = 0 .
Sau đó :
Giá trị thanh ghi ( OCRBxxx ) = pwm1
rồi :
Nếu pwm1 lớn hơn bằng ....
---- thế thì lúc nào thanh ghi cũng 0 hết .
--------------------------------------------------------
Có thể làm đơn giản như sau :
- Đẩy tín hiệu ( 8 bit từ cổng com vào AVR )
( bây giờ 8 bit đã được đưa vào thanh ghi ).
Pwm1 = thanh ghi 1 .
Pwm2 = thanh ghi 2
--- kiểm tra (pwm1 , pwm2 ) ---- if ( pwm1 >= xxx) thì làm những việc sau đó .
Có thể PWM luôn cái data thu về .
( máy tính có nhiệm vụ gửi ( 0 đến 255 ) khi ấn nút )
AVR thu được 8 bit này (dulieu) và tiến hành PWM ra 1 chân : ( VD : chan15 )
for (i=8;i>0;i--){
if ((dulieu & 0x80)==0x80)
{chan15=1;
Trễ_1 ;
chan15 =0;
Trễ_1 ;
}
else {
chan15=1;
Trễ_2;
chan15=0;
Trễ_2;
}
dulieu<<=1;}
/////// Cũng có thể gộp vào và sử dụng PWM cứng trên AVR ( nếu AVR có hỗ trợ)
/////// Cho tất cả chúng vào vòng lặp tuần hoàn.
Có xem qua cái code của cậu rồi .
Nếu mà khai báo biến pwm1 ,pmw2 ...
Khi muốn nạp giá trị cho biến thì ( biến = giá trị )
--- Hình như trong mã nguồn cậu lại làm điều ngược lại .
--- Ban đầu :
pwm1 =pmw2 = 0 .
Sau đó :
Giá trị thanh ghi ( OCRBxxx ) = pwm1
rồi :
Nếu pwm1 lớn hơn bằng ....
---- thế thì lúc nào thanh ghi cũng 0 hết .
--------------------------------------------------------
Có thể làm đơn giản như sau :
- Đẩy tín hiệu ( 8 bit từ cổng com vào AVR )
( bây giờ 8 bit đã được đưa vào thanh ghi ).
Pwm1 = thanh ghi 1 .
Pwm2 = thanh ghi 2
--- kiểm tra (pwm1 , pwm2 ) ---- if ( pwm1 >= xxx) thì làm những việc sau đó .
Có thể PWM luôn cái data thu về .
( máy tính có nhiệm vụ gửi ( 0 đến 255 ) khi ấn nút )
AVR thu được 8 bit này (dulieu) và tiến hành PWM ra 1 chân : ( VD : chan15 )
for (i=8;i>0;i--){
if ((dulieu & 0x80)==0x80)
{chan15=1;
Trễ_1 ;
chan15 =0;
Trễ_1 ;
}
else {
chan15=1;
Trễ_2;
chan15=0;
Trễ_2;
}
dulieu<<=1;}
/////// Cũng có thể gộp vào và sử dụng PWM cứng trên AVR ( nếu AVR có hỗ trợ)
/////// Cho tất cả chúng vào vòng lặp tuần hoàn.
Comment