![]() |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 22
: |
![]() Em có đoạn code sau nhưng em không hiểu là lệnh adcHI và adcLO làm gì (với khai báo
char adcHI,adcLO).Anh nào giải thích hộ em Code:
while(TRUE) { adcValue = read_adc(); // Get ADC reading adcHI = (char)((adcValue >> 5)& 0x1f); adcLO = (char)((adcValue & 0x1f)|0x80); putc(adcHI); putc(adcLO); delay_ms(10); // Preset delay, repeat every 10ms } } thay đổi nội dung bởi: namqn, 06-05-2008 lúc 02:09 AM. |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
adcHI và adcLO là các biến kiểu char (8-bit), không phải là lệnh.
Trong đoạn lệnh mà bạn đã đưa ra, kết quả của việc biến đổi A/D được tách thành 2 phần, phần cao chứa trong adcHI, còn 5 bit thấp hơn của kết quả được chứa trong adcLO. Bit 7 của adcLO được bật. Sau đó adcHI và adcLO được xuất ra thông qua hàm putc(). 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 |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 22
: |
Trích:
Cảm ơn anh , nhưng anh có thể giải thích rõ hơn cho em doạn lệnh sau ![]() adcHI = (char)((adcValue >> 5)& 0x1f); adcLO = (char)((adcValue & 0x1f)|0x80); Anh còn bảo là bit 7 của adcLO được bật là sao ha anh? Rất mong thư! |
|
![]() |
![]() |
![]() |
#4 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 22
: |
Vâng em cũng mới bắt đầu làm quen mà
Anh cũng cho em biết thêm là adcHI và adcLO là 8 bit, thế sao khi A/D tách thành 2 phần thì như anh nói 5 bit thấp hơn lại chứa trong adcLO? |
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: Jun 2010
Bài gửi: 3
: |
là gà Pic.Nên cho mình hỏi lỗi này trong CCS
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 7 túi
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
: |
|
![]() |
![]() |
![]() |
#8 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 1
: |
Trích:
#include "16f877a.h" #use delay(clock=20000000) #int_rb unsigned char x,i,a,b,tre; int16 mode; void trai()// chuong trinh con nhay trai sang { x=0x01; output_d(x); delay_ms(tre); for(i=1;i<=7;i++) {x=x<<1; output_d(x); delay_ms(tre); } } void phai()//chuong trinh con nhay phai sang { x=0x80; output_d(x); delay_ms(tre); for(i=1;i<=7;i++) { x=x>>1; output_d(x); delay_ms(tre); } } void trong() //chuong trinh con nhay trong ra { a=0x01; b=0x80; for(i=1;i<=7;i++) { a<<=1; b>>=1; output_d(a|b); delay_ms(tre); } } void ngat() { if(input(pin_b0)) if(mode<2)mode++;//chuyen che do tang len o b0 if(input(pin_b1)) if(mode<0 )mode--;//chuyen che do tang len o b1 if(input(pin_b2)) if(tre<100) tre=tre+100;//tang thoi gian tre cho led if(input(pin_b3)) if(tre>100) tre=tre-100;//giam thoi gian tre cho led } void main() { set_tris_b(0xff); enable_interrupts(int_rb); enable_interrupts(GLOBAL); mode=0; while (true) case 0: trai();break; case 1: phai();break; case 2: trong();break; } |
|
![]() |
![]() |
![]() |
#9 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2011
Bài gửi: 3
: |
Trích:
switch (cmd) { case 0: sthing; break; case 1: sthing; break; case 2: sthing; break; } |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|