PDA

View Full Version : cho hỏi về lệnh output_high() ccs


dinhminh09
17-09-2010, 03:43 PM
bác nào biết trả lơi giúp mình với
ví dụ

output_high(PIN_C0); khích c0 lên cao
output_high(PIN_C1); kích c1 lên cao
nhưng sau khi mình khích c1 lên cao thì c0 trở về mức thấp. có ai có giải pháp không

dinhminh09
17-09-2010, 09:55 PM
đơn giản là mình xài cái này để làm sáng tắc mấy con led đó mà

nhưng cái này không chạy như ý muống
#include <16f877a.h> //PIC utilizado
#fuses HS,NOWDT,NOPROTECT,NOLVP //Configuramos los fuses
#use delay (clock=20000000) //Oscilador a 4Mhz
void main()
{
SET_TRIS_c( 0xFF );
while(1)
{
output_high(PIN_C0);
delay_ms(1000);
output_high(PIN_C1);
delay_ms(1000);
output_low(PIN_C1);
delay_ms(1000);
output_low(PIN_C0);
}
}



còn nếu thế này thay đổi phần cứng chút thì chyaj tốt

#include <16f877a.h> //PIC utilizado
#fuses HS,NOWDT,NOPROTECT,NOLVP //Configuramos los fuses
#use delay (clock=20000000) //Oscilador a 4Mhz
void main()
{
SET_TRIS_c( 0xFF );

while(1)
{
output_low(PIN_C0);
delay_ms(1000);
output_low(PIN_C1);
delay_ms(1000);
output_high(PIN_C1);
delay_ms(1000);
output_high(PIN_C0);
}
}

pk178
17-09-2010, 11:43 PM
bạn xem lại các cấu hình của bạn, post cả code và mạch nguyên lí của bạn lên cho mọi người xem !

hongmta
18-09-2010, 10:22 AM
thao tác xử lý bit này là độc lập mà, làm sao có thể như vậy được, bạn gửi code cho mọi người xem thì sẽ dễ trả lời bạn hơn!

chungtn1980
05-10-2011, 10:23 PM
bác nào biết trả lơi giúp mình với
ví dụ

output_high(PIN_C0); khích c0 lên cao
output_high(PIN_C1); kích c1 lên cao
nhưng sau khi mình khích c1 lên cao thì c0 trở về mức thấp. có ai có giải pháp không

Tôi cũng bị hiện tượng như thế! Tôi dùng con 16F84
Bạn đã giải quyết đươc vấn đề đó chưa? không hiểu thế nào nhỉ?

pstin
05-10-2011, 10:38 PM
Hì, tui cũng bị vấn đề . Dùng 4 chân để kích 4 cái relay, khi khởi động PIC là 1 chân kích lên luôn, sau khi vào chương trình chính thì chân đó "mới chịu tắt", chắc do trong CSS đang ở trạng thái "mơ hồ" nào đó!!!!!!!!. Chơi chiêu này chắc ok:

#include <16f877a.h> //PIC utilizado
#fuses HS,NOWDT,NOPROTECT,NOLVP //Configuramos los fuses
#use delay (clock=20000000) //Oscilador a 4Mhz
void main()
{
SET_TRIS_c( 0xFF );
output_low(PIN_C1);
output_low(PIN_C0);
while(1)
{
output_high(PIN_C0);
delay_ms(1000);
output_high(PIN_C1);
delay_ms(1000);
output_low(PIN_C1);
delay_ms(1000);
output_low(PIN_C0);
}
}

levuphuong
08-10-2011, 08:13 PM
SET_TRIS_c( 0xFF );
Mình cũng mới học mà mình nhớ là output thì set_tris_C(0); mà

pstin
09-10-2011, 10:39 AM
Hì, chép nguyên đoạn code trên nên hok để ý, đúng là set_tris_C(0); vậy lỗi của mấy anh chàng ở trên cũng có thể là do nguyên nhân đó, còn cái lỗi của tui là thiệt, set đương nhiên là đúng, khi tui bắt đầu chương trình tui luôn cho mấy chân kích =0 cho chắc!!!!!!!!.