View Single Post
Old 01-10-2008, 11:22 AM   #27
sidesignvn
Nhập môn đệ tử
 
Tham gia ngày: Nov 2006
Bài gửi: 2
:
Sử dụng dao động nội 16F88 trong CCS.

Tôi mới thực hiện một thiết kế với 16F88 để tiết kiệm thạch anh tôi dùng dao động nội trong CCS như sau:

Code:
#include <16F88.H>
#include <ctype.h>
#fuses INTRC_IO,NOWDT
#use delay(clock=8000000)
#use rs232(baud=19200,xmit=PIN_B5, rcv=PIN_B2,enable=PIN_B4,errors,stream=HOSTPC)

#define TRIS_A 0xFF //0b11111111 //Tat ca la dau vao
#define TRIS_B 0xC4 //0b11000100

#define RTCC_RVALUE 6 //=256 - ((8000000/4)/RTCC_DIV_8)/1000 (Ngat 1000 lan/giay)

#define DO2 PIN_B0 //Led

int16 LedTimeout;

void InitPar()
{
   set_tris_a(TRIS_A);
   set_tris_b(TRIS_B);
}

void InitRTCC(void)
{
   set_rtcc(RTCC_RVALUE); // Khoi tao timer0
   setup_counters (RTCC_INTERNAL, RTCC_DIV_8);
   enable_interrupts (INT_RTCC);
}

#INT_RTCC
clock_isr()
//Ngat nay se tran sau 1000us
{
   disable_interrupts(INT_RTCC);

   if (++LedTimeout > 1000)
   {
      output_toggle(DO2);
      LedTimeout = 0;
   }

   set_rtcc(RTCC_RVALUE);
   enable_interrupts(INT_RTCC);
}
...
RA6, RA7 tôi để lửng. Bình thường LED nhấp nháy đúng chu kỳ sáng 1 giây / tắt 1 giây. Khi tôi đưa tay lại gần hoặc trạm vào chân RA6, RA7 thì chân đầu ra DO2 chỉ chớp xuống 0 rồi lên 1 ngay (không giữ được ở trạng thái 0 đủ thời gian 1 giây).

Tôi nghi rằng việc đặt #fuses của tôi chưa đủ dẫn đến chưa chuyển được chân RA6, RA7 sang mode IO nên vẫn bị ảnh hưởng đến hoạt động của chíp.

Bạn nào biết vấn đề này xin chỉ giúp cách giải quyết.

Chân thành cảm ơn.

thay đổi nội dung bởi: namqn, 01-10-2008 lúc 05:34 PM.
sidesignvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn