PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 06-11-2008, 10:34 PM   #1
cong1810
Đệ tử 4 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 62
:
Send a message via Yahoo to cong1810
có lẽ đó là 1 biến hay đó là bit cờ ngắt của timer 1!! người sử dụng đặt trong file define!!bạn xem trong 2 file mà họ include trong code mẫu!!! có thể từ "if" làm bạn nghĩ là lệnh IF ! thực ra nó là interrupt flag!!
chúc may mắn!
cong1810 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2008, 03:14 PM   #2
delpiero10
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 5
:
Mới học lập trình ccs ai cho e hỏi file defs_16f877A.h và file def_16f877A.h khác nhau thế nào? Ai có file defs_16F877A up lên cho e được kô. Thanks!
delpiero10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2008, 05:47 PM   #3
bá vinh
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 2
:
bác F ơi cho em xin phần mềm css cho dsp đi ,em tìm hoài mà không thấy . con thằng mikroe thì không biết làm sao ma nạp nó không chạy ,chắc là nó có nhiều fuse quá em không biết chon cái nào cả ,bác có thể giúp em được không.
sẵn cho em hỏi luôn là sử dụng chức năng usb của pic18f4550 như thế nào và máy tính khai báo ra sao khi em dùng VB để giao tiếp vời pic.
bá vinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2008, 07:48 PM   #4
luongnhut
Đệ tử 2 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 29
:
hỏi về dinh thời gian trong ngắt dung timer

em sử dụng thạch anh 20MHZ cho 16f877a, em viet chuong trình ngắt timer0 1s, nhưng em kiểm tra thấy nó nhanh hon 1s rất nhiều, bác nào chỉ em cho sai chổ nao với. chương trinh của e như sau:


#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#byte PORTB = 0x06

int16 count;
int8 a;
//Chuong trinh ngat TMR0
#int_timer0
void interrupt_timer0()
{
set_timer0(251);
++count;
if(count == 1000000) // 1000000*1us = 1000000us = 1s
{
count=0;
rotate_left(&a,1);
}
}
//Chuong trinh chinh
void main(void)
{
set_tris_b(0);
enable_interrupts(int_timer0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
enable_interrupts(global);

a = 0x01;

while(true)
{
PORTB = a;
}
}
luongnhut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2008, 09:22 PM   #5
cong1810
Đệ tử 4 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 62
:
Send a message via Yahoo to cong1810
do bạn set prescale cho timer là 2 nên timer tăng lên sau mỗi 0.4us tức là 0.4*5=2us thì timer ngắt 1 lần chứ ko phải là 1us. bạn nên tham khảo thêm trong phần Help củ PIC C!!
vấn đề thứ 2 là biến count của bạn là biến int 16 bit tức giá trị tối đa chỉ là 2^16=65536!! thì điều kiện If của bạn liệu có đúng ko??
thân!!
cong1810 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 12:23 AM   #6
picpen
Đệ tử 5 túi
 
picpen's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 112
:
trích :
Code:
vấn đề thứ 2 là biến count của bạn là biến int 16 bit tức giá trị tối đa chỉ là 2^16=65536!! thì điều kiện If của bạn liệu có đúng ko??
Thực ra giá trị dương của biến " INT16 " nằm trong khoảng từ : 0 >> 2^15 = 32768
Mọi người chú ý đến phạm vi hoạt động của biến được khai báo nếu không sẽ bị tràn làm sai kết quả
__________________
** xin hãy cho tôi là tượng đá
** Để muôn đời không nhớ thương ai ..!!
picpen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-12-2008, 02:54 PM   #7
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi picpen View Post
trích :
Code:
vấn đề thứ 2 là biến count của bạn là biến int 16 bit tức giá trị tối đa chỉ là 2^16=65536!! thì điều kiện If của bạn liệu có đúng ko??
Thực ra giá trị dương của biến " INT16 " nằm trong khoảng từ : 0 >> 2^15 = 32768
Mọi người chú ý đến phạm vi hoạt động của biến được khai báo nếu không sẽ bị tràn làm sai kết quả
int16 mặc định là signed int16, có giá trị từ -32678 đến +32767, bạn chú ý!
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-12-2008, 04:59 PM   #8
kimhuynguyen
Đệ tử 3 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: Vietnam
Bài gửi: 48
:
Ccs_pcwhd4.084

Cho mục đích thử nghiệm:
http://www.mediafire.com/file/jtyxvz...WHD_v4.084.RAR
__________________
More friends more foods
kimhuynguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 10:21 AM   #9
luongnhut
Đệ tử 2 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 29
:
quét 8 led 7 đoạn

em mới chuyển qua viết bằng ccs, em dang có phần cứng là 8 led 7 đoạn, dung hai port của 16f877a cua xuất mã 7 đoạn và mã quét. quét bằng mức 0, led anot chung. cho 8 led hiện thị từ 0-7, nhưng ko biết viết như thế nào, mấy bác giúp em với
luongnhut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2008, 10:43 PM   #10
tungtuantu
Đệ tử 3 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 54
:
bạn nào giúp mình với, mình lấy hàm flex_lcd ở trên diễn đàn của CCS, vấn đề của mình là, mình xuất được chữ ra LCD rồi, nhưng trong while(1) mình viết 1 đoặn nháy led đơn giản, nhung led nháy dc 1 lúc đúng theo code, rồi sáng mãi 1 lúc, rồi lại nháy cứ thế mãi, lúc led sáng mãi đồng thời các kí tự trên LCD xuất hiẹn loạn cả lên, mình nghĩ vì 1 lí do nào đó mà vdk bị reset lại, mình đã tắt WDT rồi, ai xem giúp mình với, có ai gặp trường hợp này chưa. Mình dùng 30F4011, dùng bản PCWHD 4.068
Chương trình mình gửi kèm theo
File Kèm Theo
File Type: rar lcd.rar (3.2 KB, 67 lần tải)
tungtuantu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-11-2008, 05:07 AM   #11
delpiero10
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 5
:
Ai có code của bài giải mã bàn phím 4x4 hiển thị ra LCD thì giúp mình(Bàn phím nối vào 8 chân portb còn LCD nối kiểu 4 bit)? Thank!
delpiero10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2008, 04:43 PM   #12
longphi_batbai
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 5
:
Lightbulb hiển thị tốc độ đặt qua 4 led 7seg

xin chào các bạn, các anh chị trong diễn đàn picvietnam

em mới bắt đầu làm quen với pic, và đang tập làm bài thực hành điều khiển động cơ dùng pid mà anh Falleaf đã phát động

sau khi tham khảo các luồng về CCS cũng như các TUT trên diễn đàn, em có viết 1 đoạn code dùng ccs để hiển thị tốc độ cần đặt lên 4 led 7 đoạn với hướng làm như sau: khởi đầu hiển thị giá trị 0000, dùng 2 nút INC và DEC lần lượt tăng giảm giá trị ở hàng ngàn, rồi dùng Move để chuyển sang hàng trăm và tiếp tục dùng INC và DEC để tăng giảm giá trị mong muốn....


do mới bắt đầu viết bằng CCS nên tất nhiên code sai nhiều. mong các bạn và các anh chị góp ý giúp em để em có thể học hỏi được nhiều hơn

thank for reading, rất mong được sự hồi âm của các bạn và các anh chị

àh quên, các anh cho em hỏi:

- em định làm 1 chương trình con để đọc giá trị tốc độ từ encoder về timer 0 ở chế độ đếm xung: mỗi khi có ngắt timer 1 thì tính tốc độ động cơ và khi đó gọi 1 hàm con để hiển thị tốc độ vừa tính được lên led 7 đoạn. em ko biết xử lý thế nào? vì khi đó phải quét cả 4 led mà gọi hàm con đó trong ngắt timer 1 thì có vấn đề gì ko. mong các anh giúp giùm em
Hình Kèm Theo
File Type: gif led 7seg.gif (14.9 KB, 12 lần tải)
File Type: gif BUTTON.GIF (14.0 KB, 19 lần tải)
File Kèm Theo
File Type: txt quet 4 led 7seg.txt (7.2 KB, 75 lần tải)

thay đổi nội dung bởi: longphi_batbai, 26-11-2008 lúc 05:37 PM.
longphi_batbai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2008, 11:15 PM   #13
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
Trích:
Nguyên văn bởi longphi_batbai View Post
xin chào các bạn, các anh chị trong diễn đàn picvietnam

em mới bắt đầu làm quen với pic, và đang tập làm bài thực hành điều khiển động cơ dùng pid mà anh Falleaf đã phát động

sau khi tham khảo các luồng về CCS cũng như các TUT trên diễn đàn, em có viết 1 đoạn code dùng ccs để hiển thị tốc độ cần đặt lên 4 led 7 đoạn với hướng làm như sau: khởi đầu hiển thị giá trị 0000, dùng 2 nút INC và DEC lần lượt tăng giảm giá trị ở hàng ngàn, rồi dùng Move để chuyển sang hàng trăm và tiếp tục dùng INC và DEC để tăng giảm giá trị mong muốn....


do mới bắt đầu viết bằng CCS nên tất nhiên code sai nhiều. mong các bạn và các anh chị góp ý giúp em để em có thể học hỏi được nhiều hơn

thank for reading, rất mong được sự hồi âm của các bạn và các anh chị

àh quên, các anh cho em hỏi:

- em định làm 1 chương trình con để đọc giá trị tốc độ từ encoder về timer 0 ở chế độ đếm xung: mỗi khi có ngắt timer 1 thì tính tốc độ động cơ và khi đó gọi 1 hàm con để hiển thị tốc độ vừa tính được lên led 7 đoạn. em ko biết xử lý thế nào? vì khi đó phải quét cả 4 led mà gọi hàm con đó trong ngắt timer 1 thì có vấn đề gì ko. mong các anh giúp giùm em
phương pháp quét led 7 thanh làm cho VDK chỉ bận với công việc quét led liên tục mà ít làm được các việc khác. nếu công việc khác mà mất thời gian quá nâu thì led lại bị nhấp nháy .

phương pháp này chỉ để học mà thực tế chắc chẳng ai dùng . Thường thì người ta dùng thanh ghi dich + chốt đầu ra . VD : 74HC595

dùng IC đệm 74HC595 chỉ mất 3 chân của PIC mà số lượng LED 7 thanh có thể có thể mở rộng bao nhiêu cũng được.

tui đã dùng phương pháp này để điều khiển 103 con LED 7 thanh
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2008, 11:34 PM   #14
ketxanh
Đệ tử 3 túi
 
ketxanh's Avatar
 
Tham gia ngày: Aug 2008
Bài gửi: 53
:
Trích:
Nguyên văn bởi longphi_batbai View Post
xin chào các bạn, các anh chị trong diễn đàn picvietnam

em mới bắt đầu làm quen với pic, và đang tập làm bài thực hành điều khiển động cơ dùng pid mà anh Falleaf đã phát động

sau khi tham khảo các luồng về CCS cũng như các TUT trên diễn đàn, em có viết 1 đoạn code dùng ccs để hiển thị tốc độ cần đặt lên 4 led 7 đoạn với hướng làm như sau: khởi đầu hiển thị giá trị 0000, dùng 2 nút INC và DEC lần lượt tăng giảm giá trị ở hàng ngàn, rồi dùng Move để chuyển sang hàng trăm và tiếp tục dùng INC và DEC để tăng giảm giá trị mong muốn....


do mới bắt đầu viết bằng CCS nên tất nhiên code sai nhiều. mong các bạn và các anh chị góp ý giúp em để em có thể học hỏi được nhiều hơn

thank for reading, rất mong được sự hồi âm của các bạn và các anh chị

àh quên, các anh cho em hỏi:

- em định làm 1 chương trình con để đọc giá trị tốc độ từ encoder về timer 0 ở chế độ đếm xung: mỗi khi có ngắt timer 1 thì tính tốc độ động cơ và khi đó gọi 1 hàm con để hiển thị tốc độ vừa tính được lên led 7 đoạn. em ko biết xử lý thế nào? vì khi đó phải quét cả 4 led mà gọi hàm con đó trong ngắt timer 1 thì có vấn đề gì ko. mong các anh giúp giùm em
Mình có xem qua code của bạn.Mình thấy chường chình của bạn khi biên dịch báo lỗi rất nhiều. Các lỗi chủ yếu là thiếu dấu ;. bạn cũng nên coi lại giá trị trong câu lênh set_tris_B(00b11110011);. Bạn nên chú ý, phải inlude cho đúng tên file. Bạn hãy chinh sửa, nếu bạn gặp vấn đề gì mính có thể giúp được mình sẽ giúp hết sức. Chúc bạn sớm thành công
__________________
Hãy cho trước khi nhận
ketxanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2008, 08:21 PM   #15
longphi_batbai
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 5
:
cám ơn góp ý của Lion nhá, theo như Lion nói, thì mình phải xử lý ngắt để đếm xung và tính tốc độ nên chắc chắn Led bị nhấp nháy. bạn có thể cho mình xin 1 đoạn code mẫu dùng ic đệm 74595 để tham khảo cách viết được ko? nếu được thì cảm ơn Lion lắm lắm.
longphi_batbai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:11 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam