Posts : 285 Power : 612 Thanked : 10 Tham Gia : 24/09/2011 Age : 33
Tiêu đề: Dịch bít trong C Sat Oct 22, 2011 8:58 am
Mình thấy trong C có cách dịch bít khá hay, giống lệnh INC trong ASM nhưng khai báo khá đơn giản và dễ tạo delay hơn. Đây là ví dụ về dịch bit, chỉ cần thay đổi chút các bạn cũng có thể tạo ra khá nhiều hiệu ứng đẹp. Mình post code cho mọi người cùng tham khảo còn thêm bớt hay tạo delay khác thì tự thay đổi nhé: #include
P3=P3<<1; delay_1(1); } { unsigned int z; P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff; delay_1(1); for(z=0;z<8;z++) { P0=P0>>2;
P1=P1>>2;
P2=P2>>2;
P3=P3>>2; delay_1(1);
} { unsigned int u; P0=0x01;
P1=0x01;
P2=0x01;
P3=0x01; delay_1(1); for(u=0;u<8;u++) { P0=P0<<2;
P1=P1<<2;
P2=P2<<2;
P3=P3<<2; delay_1(1); } } } } }
m4u_91
Posts : 428 Power : 999 Thanked : 18 Tham Gia : 21/09/2011 Age : 33 Đến từ : Thanh Hoa
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 10:04 am
#include ???????????? for(f=0;f for(t=0;t<20;t++) ????????/// chu tinh kieu gi ra kai nay!!! TH0=0xC350; TL0=0xC350;
m4u_91
Posts : 428 Power : 999 Thanked : 18 Tham Gia : 21/09/2011 Age : 33 Đến từ : Thanh Hoa
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 10:22 am
hinh nhu kai do phai la
TH0=0x3c; TL0=0xb0;
đừng ném gạch em
Admin
Posts : 385 Power : 889 Thanked : 11 Tham Gia : 19/09/2011
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 12:12 pm
đồng quan điểm bạn Tâm TÍt...chưa hiểu cái này lắm......... mà bạn Luân có kiểu sáng dần dần, tắt dần dần không...đăng lên cho ae học C cái!!!
chjpchjp_1991
Posts : 506 Power : 1212 Thanked : 26 Tham Gia : 19/09/2011 Age : 33 Đến từ : 192.168.203.1 Humor : Hiền nhất diễn đàn
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 12:44 pm
tuy Chip chưa học C lập trình VDK như các bạn nhưng do học asem + C cơ bản nên cũng hiểu code bạn Luân cho bit sáng đuổi đây mà.hihi
Admin
Posts : 385 Power : 889 Thanked : 11 Tham Gia : 19/09/2011
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 12:56 pm
Chip giải thích dùm phần bạn Tâm Tít chưa hiểu???
duyluandt3
Posts : 285 Power : 612 Thanked : 10 Tham Gia : 24/09/2011 Age : 33
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 3:53 pm
Đây là code sáng đuổi thôi, còn các hiệu ứng khác ko dùng dịch bit đc
m4u_91
Posts : 428 Power : 999 Thanked : 18 Tham Gia : 21/09/2011 Age : 33 Đến từ : Thanh Hoa
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 4:01 pm
teo em biet thi de tinh TH0 va TL0 thi lay 65536-(so us) sau do chuyen sang hexa ví dụ : tao delay 1s for(t=0;t<20;t++) vong lap 20 lan thi phai tao timer 50000us nua lay 65536-50000=15536 -> Hex=3CB0 TH0=0x3C TL0=0xB0
ko biet dung ko
duyluandt3
Posts : 285 Power : 612 Thanked : 10 Tham Gia : 24/09/2011 Age : 33
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 4:06 pm
Trong C ko phải tính cách đó như ASM đâu, Trong C muốn delay bao nhiêu thì mình nạp trực tiếp giá trị TH0 và TH0, ví dụ TL0=0x350 tương ứng với 50000us còn muốn lây hơn thì tạo thêm vòng for cho nó
m4u_91
Posts : 428 Power : 999 Thanked : 18 Tham Gia : 21/09/2011 Age : 33 Đến từ : Thanh Hoa
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 5:51 pm
trong ASM muon delay bao nhieu thi gan so do vao them dau - vao truoc trong C thi khac chu! bac doc tai lieu dau do
m4u_91
Posts : 428 Power : 999 Thanked : 18 Tham Gia : 21/09/2011 Age : 33 Đến từ : Thanh Hoa
Tiêu đề: Re: Dịch bít trong C Sat Oct 22, 2011 6:00 pm