View Full Version : các pro đâu cả rồi
pic_13
26-07-2010, 10:51 AM
các pác thử xem cái code dưới của em sai cái gì mà chạy sai vậy ta.
bài này đơn giản chỉ là em dùng ngắt time2 để các led nháy đồng thời trên cả
2 cổng b và c
================================================== =====
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
int x=0,y=0,count=0;
// chuong trinh ngat
#int_timer2
void interrupts_timer2(x)
{x++;if(x==5)x=1;set_timer2(0);
switch(x)
{case 1: portb=0xaa;break;
case 2: portb=0x55;break;
case 3: portb=0xe7;break;
case 4: portb=0x18;break;
}
}
void main()
{
trisb=0x00;
trisc=0x00;
portb=0x00;
portc=0x00;
x=0;
PORT_b_PULLUPS(1);
SETUP_TIMER_2(T2_DIV_BY_16,256,16);//CHO PHEP NGAT SAU 65536US
ENABLE_INTERRUPTS(INT_TIMER2);
ENABLE_INTERRUPTS(global);
delay_us(65536);
while(true)
{portc=0xaa;delay_us(65536);
portc=0x55;delay_us(65536);
portc=0xe7;delay_us(65536);
portc=0x18;delay_us(65536);
}
}
pic_13
26-07-2010, 10:38 PM
các pác thử xem cái code dưới của em sai cái gì mà chạy sai vậy ta.
bài này đơn giản chỉ là em dùng ngắt time2 để các led nháy đồng thời trên cả
2 cổng b và c
================================================== =====
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
int x=0,y=0,count=0;
// chuong trinh ngat
#int_timer2
void interrupts_timer2(x)
{x++;if(x==5)x=1;set_timer2(0);
switch(x)
{case 1: portb=0xaa;break;
case 2: portb=0x55;break;
case 3: portb=0xe7;break;
case 4: portb=0x18;break;
}
}
void main()
{
trisb=0x00;
trisc=0x00;
portb=0x00;
portc=0x00;
x=0;
PORT_b_PULLUPS(1);
SETUP_TIMER_2(T2_DIV_BY_16,256,16);//CHO PHEP NGAT SAU 65536US
ENABLE_INTERRUPTS(INT_TIMER2);
ENABLE_INTERRUPTS(global);
delay_us(65536);
while(true)
{portc=0xaa;delay_us(65536);
portc=0x55;delay_us(65536);
portc=0xe7;delay_us(65536);
portc=0x18;delay_us(65536);
}
}
chán diễn đàn quá ,diễn đàn đông người vậy mà chả ai chịu giúp em
nbb3i
27-07-2010, 09:36 AM
chán diễn đàn quá ,diễn đàn đông người vậy mà chả ai chịu giúp em
em chán thì đi chỗ khác chơi đi :beer:
pic_13
28-07-2010, 10:07 AM
em chán thì đi chỗ khác chơi đi :beer:
đây đúng là pro nè. chỉ có pro mới trả lời như vậy
manhdktd
28-07-2010, 10:37 AM
các pác thử xem cái code dưới của em sai cái gì mà chạy sai vậy ta.
bài này đơn giản chỉ là em dùng ngắt time2 để các led nháy đồng thời trên cả
2 cổng b và c
================================================== =====
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
int x=0,y=0,count=0;
// chuong trinh ngat
#int_timer2
void interrupts_timer2(x)
{x++;if(x==5)x=1;set_timer2(0);
switch(x)
{case 1: portb=0xaa;break;
case 2: portb=0x55;break;
case 3: portb=0xe7;break;
case 4: portb=0x18;break;
}
}
void main()
{
trisb=0x00;
trisc=0x00;
portb=0x00;
portc=0x00;
x=0;
PORT_b_PULLUPS(1);
SETUP_TIMER_2(T2_DIV_BY_16,256,16);//CHO PHEP NGAT SAU 65536US
ENABLE_INTERRUPTS(INT_TIMER2);
ENABLE_INTERRUPTS(global);
delay_us(65536);
while(true)
{portc=0xaa;delay_us(65536);
portc=0x55;delay_us(65536);
portc=0xe7;delay_us(65536);
portc=0x18;delay_us(65536);
}
}
mô phỏng có hện tượng gì?
bạn thử set_timer2(0) trong hàm main xem sao?
pic_13
28-07-2010, 05:01 PM
mô phỏng có hện tượng gì?
bạn thử set_timer2(0) trong hàm main xem sao?
thanks anh nhiều nha!
cho em hỏi lun anh xem cái code băm xung của em này sai chỗ nào mà không thấy
xung ra vậy anh.
====================================
#include<16f877a.h>
#fuses hs,NOWDT,PUT
#use delay(clock=20000000)
#int_timer2
void interrupts_timer2()
{set_timer2(0);
set_pwm1_duty(64);
}
main()
{
SET_TRIS_c(0);
output_c(0);
setup_timer_2(T2_DIV_BY_16,239,1);
set_timer2(0);
setup_ccp1(CCP_PWM);
while(1) {}
}
========================================
bebungbu
29-07-2010, 10:00 AM
Phần chứng của bạn có chớp led được không vậy?
Bạn muốn chương trình của mình chạy như thế nào, nói rõ cho mọi người dễ hiểu nhe.
thanks anh nhiều nha!
cho em hỏi lun anh xem cái code băm xung của em này sai chỗ nào mà không thấy
xung ra vậy anh.
====================================
#include<16f877a.h>
#fuses hs,NOWDT,PUT
#use delay(clock=20000000)
#int_timer2
void interrupts_timer2()
{set_timer2(0);
set_pwm1_duty(64);
}
main()
{
SET_TRIS_c(0);
output_c(0);
setup_timer_2(T2_DIV_BY_16,239,1);
set_timer2(0);
setup_ccp1(CCP_PWM);
while(1) {}
}
========================================
pic_13
29-07-2010, 11:53 PM
Phần chứng của bạn có chớp led được không vậy?
Bạn muốn chương trình của mình chạy như thế nào, nói rõ cho mọi người dễ hiểu nhe.
bài của em đơn giản chỉ là đưa xung ra chân cc1 thôi vậy mà chả có xung ra
pác xem code của em sai chỗ nào ,thì giúp em với.
nhamdtk4
30-07-2010, 12:39 AM
Thử code này rồi tìm xem tại sao của bạn không chạy.
#include <16f877a.h>
#fuses xt,nowdt,nolvp
#use delay(clock=4M)
int duty;
void main()
{
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
setup_timer_2(T2_div_by_4,127,1);
while(true)
{
set_pwm1_duty(duty);
set_pwm2_duty(255-duty);
duty++;
delay_ms(50);
}
}
manhdktd
30-07-2010, 05:49 AM
thanks anh nhiều nha!
cho em hỏi lun anh xem cái code băm xung của em này sai chỗ nào mà không thấy
xung ra vậy anh.
====================================
#include<16f877a.h>
#fuses hs,NOWDT,PUT
#use delay(clock=20000000)
#int_timer2
void interrupts_timer2()
{set_timer2(0);
set_pwm1_duty(64);
}
main()
{
SET_TRIS_c(0);
output_c(0);
setup_timer_2(T2_DIV_BY_16,239,1);
set_timer2(0);
setup_ccp1(CCP_PWM);
while(1) {}
}
========================================
chưa cho phép ngắt toàn cục,ngắt timer2
nên không có xung ra là phải.
pic_13
30-07-2010, 11:27 AM
chưa cho phép ngắt toàn cục,ngắt timer2
nên không có xung ra là phải.
pác ơi em vẫn chưa thấy xung ra .
hay tại mạch em mắc sai nhỉ
em chỉ mắc một con oscilloscope vào 2 chân cpp1 và cpp2 .sau đó nạp chíp
nhưng chả thấy xung ra
pic_13
30-07-2010, 11:30 AM
Thử code này rồi tìm xem tại sao của bạn không chạy.
#include <16f877a.h>
#fuses xt,nowdt,nolvp
#use delay(clock=4M)
int duty;
void main()
{
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
setup_timer_2(T2_div_by_4,127,1);
while(true)
{
set_pwm1_duty(duty);
set_pwm2_duty(255-duty);
duty++;
delay_ms(50);
}
}
pác ơi em nạp code của bác vào chíp nhưng vẫn không thấy xung ra là sao nhỉ.
trong mạch em chỉ mắc thử 1 con oscillscope vào 2 chân ccp1 và cpp2
vậy mà chả thấy xung ra
manhdktd
30-07-2010, 12:00 PM
Bác làm mạch thật hay mô phỏng trên proteus.
nếu mô phỏng trên proteus thì 1 số bản proteus không thể mô phỏng được pwm.trước mình cũng bị tình trạng này.cái này thấy bảo là nhà sản xuất nói vầy.
down bản này về rồi đưa vào ổ cài.
nhamdtk4
30-07-2010, 03:57 PM
Nghiêm trọng nhỉ code chạy trên cả mạch thật lẫn mô phỏng rồi mà bạn làm ko chạy đc.
pic_13
31-07-2010, 10:58 AM
Bác làm mạch thật hay mô phỏng trên proteus.
nếu mô phỏng trên proteus thì 1 số bản proteus không thể mô phỏng được pwm.trước mình cũng bị tình trạng này.cái này thấy bảo là nhà sản xuất nói vầy.
down bản này về rồi đưa vào ổ cài.
pác à trong ổ cài của em có cái đấy rồi.
thôi pác đang dùng bản proteu nào thi cho em vậy.
thank pác nhiếu
pic_13
31-07-2010, 10:59 AM
Nghiêm trọng nhỉ code chạy trên cả mạch thật lẫn mô phỏng rồi mà bạn làm ko chạy đc.
vậy ha pác .thế thì chắc chắn thằng proteu cuae em có vấn đề rồi.thanks pác.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.