PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC > Những câu hỏi thường gặp

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

Những câu hỏi thường gặp Những lỗi cơ bản thường gặp khi làm việc với PIC hoặc những vấn đề cơ bản nhất thường được hỏi trong những năm qua

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 10-02-2007, 11:32 AM   #16
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi diencaothe View Post
Các bác giải thích rõ cho em chỗ này với:
Câu hỏi của em là: nếu em dùng cả 2 CCP ở chế độ PWM thì có dùng time0 và timer1 làm counter đếm xung từ 2 encoder đưa về được không?

Bác Nam viết: Dùng cả CCP1 và CCP2 ở PWM mode thì vẫn chỉ dùng timer 2. Bạn được phép dùng timer 0 và timer 1 cho những việc khác.

Bác falleaf lại viết: PWM được set là output, còn counter là input. Như vậy không thể sử dụng cả hai chức năng cùng lúc.Cho nên nếu muốn dùng 2PWM và 1 counter, bạn có thể lấy một chân làm counter1, 1 chân làm PWM, và một chân I/O bất kỳ khác để làm PWM.
Anh Nam trả lời không sai, anh Nam nói là dùng timer cho những việc khác, chứ không nói là dùng chân CCP để làm counter. Đây là câu trả lời chung cho hầu hết các trường hợp.

Tuy nhiên, tranh chấp chân linh kiện xảy ra, khi bạn sử dụng PWM, nó cũng dùng CCP2 và khi dùng counter nó cũng dùng CCP2. Vậy cho mình hỏi, mạch của bạn thiết kế như thế nào? Không có một cách nào để thiết kế cả, cho nên bạn hỏi câu hỏi này rõ ràng là đưa vào trường hợp không thể xảy ra.

Một trường hợp có thể xảy ra, đó là bạn không sử dụng đồng thời, mà dùng một dạng switch để một lúc thì dùng PWM (output) một lúc khác lại dùng làm counter (input). Khi đó, giữa 2 chế độ chuyển, bạn hoàn toàn có thể sử dụng PWM và counter, nhưng nên nhớ, nó không cùng lúc.

Khi bạn đặt câu hỏi này, rõ ràng bạn chưa có ý tưởng thiết kế mạch, cho nên bạn hiểu sai hai câu trả lời trên.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-02-2007, 09:39 PM   #17
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi diencaothe View Post
Em thấy chân 15 là RC0/T1OSO/T1CKI: vậy T1OSO (timer1 oscillator output)là gì? còn T1CKI (timer1 externel clock input) thì phải là đầu vào của xung cần đếm cho counter1 rồi đúng ko ạ? (bình thường em vẫn làm vậy và đếm đúng)

chân 16 là RC0/T1OSI/CCP2: T1OSI (timer1 oscillator input) sử dụng ra sao??
??
Chân 16 là RC1/T1OSI/CCP2 chứ.
Khi Timer 1 dùng thạch anh ngoài (thường là tốc độ thấp vài trăm kHz cho đồng hồ thời gian thực), các chân 15 và 16 là hai chân của bộ dao động, giống như hai chân OSC1 và OSC2 của bộ dao động sơ cấp cấp xung clock cho PIC. Như vậy T1OSI là ngõ vào của bộ đệm đảo (bộ khuếch đại dao động), T1OSO là ngõ ra của bộ đệm. Timer 1 ở chế độ đếm đồng bộ chấp nhận tín hiệu vào từ một trong hai chân 15 và 16, tùy theo bit T1OSCEN bị clear hay set.

Những thông tin trên có lẽ đủ cho bạn biết cách dùng chân 16.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 11-02-2007 lúc 08:38 PM. Lý do: thiếu 1 từ
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2008, 11:11 PM   #18
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
Smile xung clock

#include "D:\Baibaocaonhom7\codevanthanh.h"
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=8000000)
Anh Nam cho em hỏi vấn đề của bạn diencaothe rằng dùng thạch anh cho Pic6F877 tối đa là 20Mhz ,nhung sao đoạn code trên dùng 80Mhz.Có gì không phải anh dùng la em,tại em mới tìm hiểu Pic thôi.
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2008, 11:32 PM   #19
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi dientudong View Post
#include "D:\Baibaocaonhom7\codevanthanh.h"
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=8000000)
Anh Nam cho em hỏi vấn đề của bạn diencaothe rằng dùng thạch anh cho Pic6F877 tối đa là 20Mhz ,nhung sao đoạn code trên dùng 80Mhz.Có gì không phải anh dùng la em,tại em mới tìm hiểu Pic thôi.
Đoạn code mà bạn đã post xác định clock = 8 MHz, chứ không phải là 80 MHz.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 07:13 PM   #20
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
Bạn nào có thể vui lòng giải thích rõ giúp mình 4 dòng lệnh sau:
#define Line_2 0xC0
#define Clear_Scr 0x01
LCD_PutCmd ( 0x2C );
LCD_Putcmd (0xC3 );
Ở hai dòng lệnh đầu mình không rõ ở chỗ 0xC0 và 0x01,có phải bắt buộc phải ghi như vậy
Dòng thứ 3 thì mình không biết rõ
Dòng thứ tư thì mình nghe phong phanh là"chỉ vị trí con trỏ tới vị trí thứ 4 của dòng thứ 2"_nhưng mình không biết là làm sao tính ra được như vậy.
Rất cảm ơn các bạn đã chỉ bảo !
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 10:21 PM   #21
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
thắc mắc

à , vấn đề của mình là tra data sheet của LCD .nhưng mình vẫn chưa rõ là tại sao trên dâtsheet của LCD đã nói rõ vị trí nào ứng với địa chỉ trên Ram thì cần gì phải define nữa>
Mình còn thắc mắc về lệnh :
#define Clear_Scr 0x01 : không biết có phải rằng 0x01 là bắt buộc phải có để xóa màn hình không ?Mình chưa hiểu rõ về 0x01 . Mong các bạn chỉ bảo !
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 11:00 PM   #22
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
thắc mắc

Syntax:
set_pwm1_duty (value)
set_pwm2_duty (value)
set_pwm3_duty (value)
set_pwm4_duty (value)
set_pwm5_duty (value)
Parameters:
value may be an 8 or 16 bit constant or variable.
Returns:
undefined
Function:
Writes the 10-bit value to the PWM to set the duty. An 8-bit value may be used if the least significant bits are not required. If value is an 8 bit item it is shifted up with two zero bits in the lsb positions to get 10 bits. The 10 bit value is then used to determine the amount of time the PWM signal is high during each cycle as follows:
Ton = value*(1/clock)*t2div
Where clock is oscillator frequency and t2div is the timer 2 prescaler (set in the call to setup_timer2).
Availability:
This function is only available on devices with CCP/PWM hardware.
Requires:
Nothing
Examples:
// For a 20 mhz clock, 1.2 khz frequency,
// t2DIV set to 16
// the following sets the duty to 50% (or 416 us).
long duty;
duty = 520; // .000416/(16*(1/20000000))
set_pwm1_duty(duty);
Các bạn vui lòng cho mình hỏi : nếu value là 16 bit thì sao,trong khi ở trên nói rằng ghi vào PWM 10 bit .
Với lại "t2div is the timer 2 prescaler (set in the call to setup_timer2)." mình chưa biết dịch ra tiếng Việt thế nào .Rất cảm ơn các bạn chỉ bảo !
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-01-2009, 11:12 AM   #23
lewhenshan
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 3
:
Em đang làm đồ án điều khiển động cơ 1 chiều dùng PiC16F877 ghép với L298 ! CÁc bạn giúp mình viết COde trên CCS C đảo chiểu, Điều khiển tốc độ, chạyvà dừng động cơ nhé ! Cảm ơn
lewhenshan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-01-2009, 06:41 PM   #24
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi lewhenshan View Post
Em đang làm đồ án điều khiển động cơ 1 chiều dùng PiC16F877 ghép với L298 ! CÁc bạn giúp mình viết COde trên CCS C đảo chiểu, Điều khiển tốc độ, chạyvà dừng động cơ nhé ! Cảm ơn
Vậy trong đồ án của bạn thì bạn thực sự làm những gì?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-07-2012, 06:49 PM   #25
drum251288
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 1
:
các huynh ơi giúp đệ với đệ đang làm đồ án về con pic16f887 giao tiếp chuẩn i2c nhưng không biết 2 chân SDA và SCL cần phải có điện trở kéo lên để làm gì? nếu không có thì chuyện gì sẽ xảy ra?. mong các huynh giúp giùm em. cám ơn mấy huynh rất nhiều
drum251288 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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Xin tập lệnh của PIC16F877 thanhdt Cơ bản về vi điều khiển và PIC 12 13-01-2011 09:37 PM
Nguồn chuẩn cho ADC của PIC16F877 mamen2006 PIC - Thiết kế và Ứng dụng 0 13-09-2006 05:23 PM


Múi giờ GMT. Hiện tại là 04:37 AM.


Đượ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