22.10.2011, 07:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Заработало. Оказалось, надо только #use delay(clock=8000000) прописать. А int=8000000 выкинуть. Странно это. Вот у себя живой исходник нашел на 16F628, так там #use delay(int=4000000) прописано (ну так визард предлагает), и все работает.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 22.10.2011 в 09:32.
|
|
|
|
22.10.2011, 09:41
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
DK, А откуда исходник ?
По теме #USE DELAY - в хелпе все расписано ...
Цитата:
|
Syntax:
#USE DELAY (options))
Elements:
Options may be any of the following separated by commas:
clock=speed speed is a constant 1-100000000 (1 hz to 100 mhz).
This number can contains commas. This number also supports the following denominations: M, MHZ, K, KHZ. This specified the clock the CPU runs at. Depending on the PIC this is 2 or 4 times the instruction rate. This directive is not needed if the following type=speed is used and there is no frequency multiplication or division.
type=speed type defines what kind of clock you are using, and the following values are valid: oscillator, osc (same as oscillator), crystal, xtal (same as crystal), internal, int (same as internal) or rc. The compiler will automatically set the oscillator configuration bits based upon your defined type. If you specified internal, the compiler will also automatically set the internal oscillator to the defined speed. Configuration fuses are modified when this optio is used. Speed is the input frequency.
restart_wdt will restart the watchdog timer on every delay_us() and delay_ms() use.
clock_out when used with the internal or oscillator types this enables the clockout pin to output the clock.
fast_start some chips allow the chip to begin execution using an internal clock until the primary clock is stable.
lock some chips can prevent the oscillator type from being changed at run time by the software.
Purpose:
Tells the compiler the speed of the processor and enables the use of the built-in functions: delay_ms() and delay_us(). Will also set the proper configuration bits, and if needed configure the internal oscillator. Speed is in cycles per second. An optional restart_wdt may be used to cause the compiler to restart the WDT while delaying. When linking multiple compilation units, this directive must appear in any unit that needs timing configured (delay_ms(), delay_us(), UART, SPI).
In multiple clock speed applications, this directive may be used more than once. Any timing routines (delay_ms(), delay_us(), UART, SPI) that need timing information will use the last defined #USE DELAY (For initialization purposes, the compiler will initialize the configuration bits and internal oscillator based upon the first #USE DELAY.
Код:
|
Examples:
// set timing config to 32KHz, User sets the fuses
// elsewhere, restart watchdog timer
// on delay_us() and delay_ms()
#use delay (clock=32000, RESTART_WDT) |
Код:
|
//the following 4 examples all configure the timing library
//to use a 20Mhz clock, where the source is a crystal.
#use delay (crystal=20000000)
#use delay (xtal=20,000,000)
#use delay(crystal=20Mhz)
#use delay(clock=20M, crystal) |
Код:
|
//application is using a 10Mhz oscillator, but using the 4x PLL
//to upscale it to 40Mhz. Compiler will set config bits.
#use delay(oscillator=10Mhz, clock=40Mhz) |
Код:
|
//application will use the internal oscillator at 8MHz.
//compiler will set config bits, and set the internal
//oscillator to 8MHz.
#use delay(internal=8Mhz) |
|
Обратите внимание на type
int и internal Это встроенный осциллятор.
Собственно #USE DELAY это макрос задержки и только.
Сами решаете оно вам надо ?
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 22.10.2011 в 09:45.
|
|
|
|
24.10.2011, 13:11
|
|
Временная регистрация
Регистрация: 02.01.2005
Адрес: Киев
Сообщений: 78
Сказал спасибо: 6
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от dosikus
|
Собственно #USE DELAY это макрос задержки и только.
|
не только, он влияет и на скорость работы переферии. Т.е. мы пишем для UART скорость 9600кбит/с, а компилятор согласно #USE DELAY расчитывает значения для BRG, аналогично и для I2C и др.
Собственно у Вас это есть в цитате:
Сообщение от dosikus
|
In multiple clock speed applications, this directive may be used more than once. Any timing routines (delay_ms(), delay_us(), UART, SPI) that need timing information will use the last defined #USE DELAY (For initialization purposes, the compiler will initialize the configuration bits and internal oscillator based upon the first #USE DELAY
|
Последний раз редактировалось SergeyK; 24.10.2011 в 13:14.
|
|
|
|
27.10.2011, 21:35
|
|
Частый гость
Регистрация: 24.09.2007
Адрес: Кировск
Сообщений: 19
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Не получается скомпилировать проект в MPLAB. Проект - пример из книги "Learning to Fly PIC24 (SPI)". В чем может быть дело?
Код:
|
----------------------------------------------------------------------
Debug build of project `C:\Microchip Starter Kits\PIC24F Starter Kit 1\07 - SPI\SPI.mcp' started.
Language tool versions: pic30-as.exe v3.12, pic30-gcc.exe v3.12, pic30-ld.exe v3.12, pic30-ar.exe v3.12
Preprocessor symbol `__DEBUG' is defined.
Thu Oct 27 21:31:05 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Microchip Starter Kits\PIC24F Starter Kit 1\07 - SPI\NVM.o".
Clean: Done.
Executing: "C:\Microchip Starter Kits\PIC24F Starter Kit 1\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 -x c -c "NVM.c" -o"NVM.o" -D__DEBUG -g
Executing: "C:\Microchip Starter Kits\PIC24F Starter Kit 1\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 "NVM.o" -o"SPI.cof" -Wl,-L"C:\Program Files\Microchip\MPLAB C30\lib",--script="..\..\..\Program Files\Microchip\MPLAB C30\support\gld\p24FJ128GA010.gld",--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,--heap=1024,--defsym=__ICD2RAM=1
c:/microchip starter kits/pic24f starter kit 1/mplab c30/bin/bin/../../lib\libpic30-coff.a(crt0.o)(.init+0x16):fake: undefined reference to `main'
c:/microchip starter kits/pic24f starter kit 1/mplab c30/bin/bin/../../lib\libpic30-coff.a(crt0.o)(.init+0x18):fake: undefined reference to `main'
Link step failed.
----------------------------------------------------------------------
Debug build of project `C:\Microchip Starter Kits\PIC24F Starter Kit 1\07 - SPI\SPI.mcp' failed.
Language tool versions: pic30-as.exe v3.12, pic30-gcc.exe v3.12, pic30-ld.exe v3.12, pic30-ar.exe v3.12
Preprocessor symbol `__DEBUG' is defined.
Thu Oct 27 21:31:07 2011
----------------------------------------------------------------------
BUILD FAILED |
|
|
|
|
27.10.2011, 21:38
|
|
Частый гость
Регистрация: 24.09.2007
Адрес: Кировск
Сообщений: 19
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Перезагрузил MPLAB, переоткрыл проект - сбилдился. Но осадок остался...Почему же?
|
|
|
|
27.10.2011, 21:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
У Вас не настроена работа с компилятором. Project - Select Language Toolsute.. и выберете CCS PICC
__________________
misterdi<@>i.ua
|
|
|
|
27.10.2011, 21:59
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
SergeyK, Что бы не дезинформировать новичков вашими словами .
ЗАПОМНИТЕ - #USE DELAY влияют только на расчет задержки .
То что вы вычитали относится к СОФТОВЫМ драйверам !!!!!
Будьте в следующий раз внимательными ...
__________________
Осторожно , злой кот
|
|
|
|
27.10.2011, 22:04
|
|
Частый гость
Регистрация: 24.09.2007
Адрес: Кировск
Сообщений: 19
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
MisterDi, я не в ту тему отписал. Извиняюсь.
В книге все текста приведены для С30, а не для CCS PICC. Предполагаю, что разница есть.
|
|
|
|
28.10.2011, 20:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
dosikus, а исходник (ну, начало, конечно) создан визардом CCS.
Сообщение от dosikus
|
internal Это встроенный осциллятор.
|
Ну так я и использовал внутренний
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
29.10.2011, 13:40
|
|
Прохожий
Регистрация: 22.10.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Доброго времени суток.Парни кто сможет помогите.У меня есть исходник прошивки контролера PIC 16F877-20.Там меню все на английском языке.Может хто сможет мне помочь,и руссифицировать прошивку.Буду очень благодарен.Я аж совсем не програмист.
Вот моя личка кто сделает-скиньте пожалуйста на
alex.harkevitch@yandex.ru
СПАСИБО!!!!!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:36.
|
|