PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Hỏi về lệnh trong ccs (http://www.picvietnam.com/forum/showthread.php?t=5520)

collector07 13-12-2009 11:36 PM

Hỏi về lệnh trong ccs
 
chào các bạn mình co câu hỏi này rất cần được giải đáp:
trong asm có thể dùng lệnh
MOVF portb,w để đưa giá trị portB và w

MOVLW (giá trị k) : gán cho w giá trị k để rồii sau đó đem w đi so sánh......
rồi dùng
MOVWF xuất giá trị từ w ra portB

vậy trong CCS làm sao gán giá trị portB cho một biến x nào đó (int8 x;)
để mình đem x đi so sánh trong lện (If else)


rồi xuất giá trị củ biến x ra portd vậy.

đã thử dùng
x=portb;
portd=x;
mà không được
rất mong được giúp đỡ.

collector07@gmail.com

haohao 14-12-2009 12:18 AM

Trích:

Nguyên văn bởi collector07 (Post 32213)
chào các bạn mình co câu hỏi này rất cần được giải đáp:
trong asm có thể dùng lệnh
MOVF portb,w để đưa giá trị portB và w

MOVLW (giá trị k) : gán cho w giá trị k để rồii sau đó đem w đi so sánh......
rồi dùng
MOVWF xuất giá trị từ w ra portB

vậy trong CCS làm sao gán giá trị portB cho một biến x nào đó (int8 x;)
để mình đem x đi so sánh trong lện (If else)


rồi xuất giá trị củ biến x ra portd vậy.

đã thử dùng
x=portb;
portd=x;
mà không được
rất mong được giúp đỡ.

collector07@gmail.com

Sao lai k duoc.Neu vay thi ban phai xem lai chuong trinh` cua ban.Hoac la` truoc 2 lenh tren ban da cho Portb = ? chua..Ban da khoi tao Trisb va TRID chua ?

thanhtrung_pic 13-11-2010 10:35 AM

mình cũng đang gặp một số vấn đền về câu lệnh trong phần lập trình băng ccs_c
các bạn có thể giới thiệu cho mình một số tài liệu để đọc không?

dinhminh09 13-11-2010 02:15 PM

chắt nó không hiểu portb là cái j rồi.
#byte TRISA = 0x85
#byte TRISB = 0x86
#byte TRISC = 0x87
#byte TRISD = 0x88
#byte TRISE =0x89

#byte PORTA = 0x05
#byte PORTB = 0x06
#byte PORTC = 0x07
#byte PORTD = 0x08
#byte PORTE = 0x09
thử khai báo mấy dòng này vào thêm thử sao

caovanhuong 13-11-2010 07:28 PM

Trích:

Nguyên văn bởi collector07 (Post 32213)
chào các bạn mình co câu hỏi này rất cần được giải đáp:
trong asm có thể dùng lệnh
MOVF portb,w để đưa giá trị portB và w

MOVLW (giá trị k) : gán cho w giá trị k để rồii sau đó đem w đi so sánh......
rồi dùng
MOVWF xuất giá trị từ w ra portB

vậy trong CCS làm sao gán giá trị portB cho một biến x nào đó (int8 x;)
để mình đem x đi so sánh trong lện (If else)


rồi xuất giá trị củ biến x ra portd vậy.

đã thử dùng
x=portb;
portd=x;
mà không được
rất mong được giúp đỡ.

collector07@gmail.com

gán như vầy không được. bạn phải dùng lệnh #define
viết là #define X portd, lúc này giá trị xuất ra của X sẽ là port d, còn nếu muốn gán X với một portd nào đó. vd gán X bằng portb1 thì dùng lệnh #bit viết là #bit X=portb.1

qquocddatdk 18-05-2011 04:43 PM

giải quyết lổi Improper use of a function identifier trong chương trình pic c ntn?
 
mình đang học viết ngôn ngử ccs,khi viết chương trình thì mình gặp một lổi về lệnh If .nó báo lổi là Improper use of a function identifier.bác nào biết nó là lổi gì và cách khắc phục thì cho mình biết nha.thanhks nhìu!đoạn chương trình mình viết như sau:

int x,chuc,donvi;
int a[10]={0,1,2,3,4,5,6,7,8,9};
void led();
void kt();
void batdau();
void main()
{
set_tris_a(0b1);
set_tris_b(0);
while(1)
{
void batdau()
{
If ( a0==0) ===> dòng nó báo lổi ở chử If: Improper use of a function identifier

delay_ms(1000);
kt();
else ===> dòng náy nó báo lổi A numeric expression must appear here
{
batdau();
}}}
void led()
{
e0=1;
e1=0;
portb=a[chuc];
delay_ms(10);
e0=0;
e1=1;
portb=a[donvi];
delay_ms(10);
}
void kt()
{
if (a0==1)
{
x=x+1;
chuc=x/10;
donvi=x%10;
led();
}
else
{
kt();
}}}

hcmut.khoamaisi 18-05-2011 09:08 PM

Trích:

Nguyên văn bởi qquocddatdk (Post 45255)
mình đang học viết ngôn ngử ccs,khi viết chương trình thì mình gặp một lổi về lệnh If .nó báo lổi là Improper use of a function identifier.bác nào biết nó là lổi gì và cách khắc phục thì cho mình biết nha.thanhks nhìu!đoạn chương trình mình viết như sau:

int x,chuc,donvi;
int a[10]={0,1,2,3,4,5,6,7,8,9};
void led();
void kt();
void batdau();
void main()
{
set_tris_a(0b1);
set_tris_b(0);
while(1)
{
void batdau()
{
If ( a0==0) ===> dòng nó báo lổi ở chử If: Improper use of a function identifier

delay_ms(1000);
kt();
else ===> dòng náy nó báo lổi A numeric expression must appear here
{
batdau();
}}}
void led()
{
e0=1;
e1=0;
portb=a[chuc];
delay_ms(10);
e0=0;
e1=1;
portb=a[donvi];
delay_ms(10);
}
void kt()
{
if (a0==1)
{
x=x+1;
chuc=x/10;
donvi=x%10;
led();
}
else
{
kt();
}}}

Bạn code lung tung quá!Mấy cái hàm con đưa ra khỏi main() .Thì chắc không có vấn đề gì nữa

embracelife 11-06-2011 08:55 PM

collector07 : dùng thế này
x= input_b();
output_d()=x;


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam