Ðề tài: ngắt timer
View Single Post
Old 09-08-2008, 01:04 PM   #4
minhdt10
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 18
:
Trích:
Nguyên văn bởi lekhoa View Post
Các bác xem giúp em chương trình này, ko biết bị lỗi gì mà chương trình chỉ xuất ra v=5 liên tục ( mục tiêu của em là tăng v lên 1 đơn vị sau mỗi 10ms = ngắt của timer1) . thx nhieu
Code:
#include <16F877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6, rcv=PIN_C7)
#include <def_877a.h>
#include <math.h>
#include <ctype.h>
#include <stdlib.h>
char data;
int a;
int16 xung,v;

#INT_TIMER1
void timer1_isr()
{  
   v=v+1;
   set_timer1(59286);
  }
void main()
{ setup_timer_1 ( T1_DIV_BY_8);// --> setup_timer_1 ( T1_internal | T1_DIV_BY_8);
   ENABLE_INTERRUPTS(INT_TIMER1);
   ENABLE_INTERRUPTS(GLOBAL);
   set_timer1(59286);
   x=5;  // --> v=5;
while(1)
   {
delay_ms(100);        
printf("%x",v);
   }
   }
Tôi thấy bạn phamminhtuan nói đúng, nếu chương trình đúng như vậy thì chắc chắn dịch sẽ có lỗi, bạn thử thay x bởi v, chỗ setup_timer1 nữa thử xem, có phải bạn dùng dao động nội không
minhdt10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn