Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

помощ с първата ми програмка
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=2570
Страница 1 от 1

Автор:  martines [ Нед Юни 25, 2006 12:37 pm ]
Заглавие:  помощ с първата ми програмка

Здравйте
опитвам се да напиша първата си програмка на С за пик18(следвам съветите и ще се пробам на светодиод първо :)

ето докъде съм в момента

#if defined(_PCB_)
#include <18F452.h>
#device PIC18F452
#include <stdio.h>

#fuses HS,NOPROTECT,NOWDT

#use delay (clock=10000000)

#endif
#device PIC18F452 *=8 ADC=10

#define PIN_A3 43


void flash_led() {

output_low (PIN_A3);
delay_ms( 500 );
output_high(PIN_A3);
delay_ms(500);
}

обаче проблема е че на delay_ms ми дава грешка UNDEFINED IDENTIFIER .като напиша delay_cycles() не изкарва грешка ,но когато сложа _ms или _us неще. :(
хелп плс. [/img]

Автор:  Predator_MF [ Нед Юни 25, 2006 1:47 pm ]
Заглавие: 

Код:
#include <18F452.h> // <-- Тук е дефинирано #Device PIC18F452 ,както и пиновете (например PIN_A3)
//#include <stdio.h>
#fuses HS,NOPROTECT,NOWDT
#use delay (clock=10000000)

void flash_led() {
output_low(PIN_A3);
delay_ms(500);
output_high(PIN_A3);
delay_ms(500);
}

void main(void)
{flash led();
}


Проблема ти идва от това "#if defined(_PCB_)", ето защо:
CCS Manual написа:
The PCB, PCM and PCH are separate compilers. PCB is for 12 bit opcodes, PCM is for 14 bit opcodes and PCH is for the 16 and 18 bit PICmicro® MCU.

Тоест, _PCB_ не е дефинирано, защото пишеш за PCH (H = Hi-range) чип, следователно всичко, което е между #ifdefined и #endif остава некомпилирано, в случая това #use delay... :)

Автор:  martines [ Нед Юни 25, 2006 2:16 pm ]
Заглавие:  :)

мерси много
компилира се сега но само ако сложа 16ф877 (понеже и такъв си взех)
но ако сложа 18ф452 ми изкарва unknown device type "18f452" ;това пък защо е ? (при положение че го има в папката devices на PICC-to)

Автор:  Predator_MF [ Нед Юни 25, 2006 4:33 pm ]
Заглавие: 

При мен работи, нещо бъркаш при създаване на проекта. Имаш ли Project Wizard в меню Project >> Wizard ? Ako имаш, ползвай него за създаване на нов проект

Автор:  setoy [ Пон Юни 26, 2006 10:21 am ]
Заглавие: 

*=8 - направи го на 16, иначе стават проблеми, дори и нито един указател да не ползваш.

#define PIN_A3 43 - това какъв му е смисъла въобще?? Това го има в хедър файла и бездруго.

И въобще не виждам смисъл от условното компилиране в твоя случай.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/