PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Những câu hỏi thường gặp (http://www.picvietnam.com/forum/forumdisplay.php?f=54)
-   -   Giúp mình code dễ mà sao cứ có lỗi (http://www.picvietnam.com/forum/showthread.php?t=6106)

vanmuonchoi 09-04-2010 12:16 PM

Giúp mình code dễ mà sao cứ có lỗi
 
code như này mà sao có lõi các bác, mình đang dùng CCS ver 4.102d

#include <16F877.h>
#include <stdio.h>
#use delay(clock = 20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device PIC16F877*=16 ADC=8
#use rs232(baud=19200, parity=n, xmit=pin_C6, rcv=pin_C7)

int8 adc;
void main()
{
setup_ADC(ADC_CLOCK_INTERNAL);
setup_ADC_ports(AN0);
set_ADC_channel(0);
delay_us(10);
while(true)
{
adc=read_ADC();
output_B(adc);
printf("gia tri adc la %u",adc);
}
}

khi biên dịch thi được các thông báo lỗi sau:
Error 23.. Line 5: can not change device type this far into the code
Line 5: Expecting a (
Line 5: Expecting a declaration
Line 5: Expecting a (
Line 5: Expecting a declaraton

Vì mới tìm hiểu PIC được ít hôm nên mong được các bạn chi thêm.

Delfy_Coltech 09-04-2010 04:56 PM

Lỗi khai báo ADC
 
Trích:

khi biên dịch thi được các thông báo lỗi sau:
Error 23.. Line 5: can not change device type this far into the code
Line 5: Expecting a (
Line 5: Expecting a declaration
Line 5: Expecting a (
Line 5: Expecting a declaraton

Vì mới tìm hiểu PIC được ít hôm nên mong được các bạn chi thêm.

Theo như thông báo là rõ rồi còn gì!
Bạn khai báo ADC sai.
Code:

#device PIC16F877*=16 ADC=8
Cái này phải là:

Code:

#device ADC*=8

vanmuonchoi 09-04-2010 05:06 PM

Rất cảm ơn bạn, đúng là mới tìm hiểu nên chưa biết hết.
Bây giờ thì được rồi, mong tiếp tục nhận được sự giúp đỡ của các bạn

vanmuonchoi 09-04-2010 05:24 PM

Trích:

Nguyên văn bởi vanmuonchoi (Post 34936)
Rất cảm ơn bạn, đúng là mới tìm hiểu nên chưa biết hết.
Bây giờ thì được rồi, mong tiếp tục nhận được sự giúp đỡ của các bạn

sr bạn nhé, nhưng vẫn là cái lỗi đó, vẫn chưa sửa đc

cskiller 09-04-2010 11:24 PM

Phải đặt dòng
Code:

#device PIC16F877*=16 ADC=8
ngay sau khai báo device:

Code:

#include <16F877.h>
#device PIC16F877*=16 ADC=8
...

Regards

vanmuonchoi 12-04-2010 01:05 PM

dc rồi bạn ah, thks nhe

hoangtuan8911 18-11-2010 07:58 AM

mình thì bị khác, mình để dòng #device ngay sau #include <16f877a.h> rồi, thì trong thư viện 16f877a.h báo lỗi y như vậy tại dòng #device PIC16F877A (cannot chang device type far into this code) chẳng biết phải làm sao. thư viện 16f877a của mình là:(lỗi tại dòng số 2)


//////// Standard Header file for the PIC16F877A device ////////////////
#device PIC16F877A
#nolist
//////// Program memory: 8192x14 Data RAM: 367 Stack: 8
//////// I/O: 33 Analog Pins: 8
//////// Data EEPROM: 256
//////// C Scratch area: 77 ID Location: 2000
//////// Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,DEBUG,NODE BUG
//////// Fuses: NOPROTECT,NOBROWNOUT,BROWNOUT,LVP,NOLVP,CPD,NOCPD, WRT_50%
//////// Fuses: NOWRT,WRT_5%,WRT_25%
////////
////////////////////////////////////////////////////////////////// I/O
// Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
// PORT_x_PULLUPS(), INPUT(),
// OUTPUT_LOW(), OUTPUT_HIGH(),
// OUTPUT_FLOAT(), OUTPUT_BIT()
// Constants used to identify pins in the above are:

hoangtuan8911 18-11-2010 10:37 AM

fixed thanks anyway

bongbk 18-03-2011 02:25 PM

các bạn cho mình xin thư viện 16F877.h . mình tìm mãi không thấy

caovanhuong 18-03-2011 08:11 PM

1 Attachment(s)
Trích:

Nguyên văn bởi bongbk (Post 42664)
các bạn cho mình xin thư viện 16F877.h . mình tìm mãi không thấy

file này thì vào ổ đĩa C/program files/PIC C/Devices/16F877.h
gửi lun cho bạn file 16F877.h

lenam_vl 14-11-2011 11:42 AM

Mình cũng bị lỗi như bạn hoangtuan8911 ah
#device PIC16F876A (cannot change device type far into this code)
Tuấn ơi cho mình hỏi bạn đã sữa lỗi như thế nào vậy.
Cảm ơn bạn nhiều!

conkhigia 15-11-2011 09:55 PM

bạn Tuấn post bài cách đây 1 năm rồi! khả năng reply là rất ít

kenno 14-12-2011 06:59 PM

Chào các bạn!
Mình đang tìm hiểu về pic 16f877a, mạch của mình có 1 nút nhấn (on/off) và 1 biến trở để điều khiển 1 led đơn giao tiếp với máy tính.
Mình làm mạch rồi mà chưa biết lập trình như thế nào. Mong các bạn chỉ giúp cho mình về giải thuật với.

dungks 14-04-2012 11:08 AM

Em chào các anh,em mới học pic16f877,em có viết 1 code đơn giản nhưng bị lỗi em chưa biết sửa cách nào,mọi người giúp em nha.
Đây là code của em
#include "C:\Documents and Settings\Administrator\My Documents\b11\main adc.h"

#device *=16 ADC=8

#use delay(clock=10000000)
int adc_delay;

void hieu_chinh()
{
adc_delay=read_adc (0);
output_B(0);
delay_ms(adc_delay);
output_B(255);
delay_ms(adc_delay);
}
void main()
{
setup_ adc_post(AN0_AN1_AN3);
setup_ adc(adc_clock_internal);
set_ adc_chennel(0);
while(1)
{
hieu_chinh();
if(input(pin_C0))
{
output_B(0);
break;
}
}

}
em dung ccs complie
lỗi sảy ra là

Error 23.. Line 3(8,9): can not change device type this far into the code


Múi giờ GMT. Hiện tại là 08:34 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