29.04.2010, 23:32
|
|
Гражданин KAZUS.RU
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
|
Re: Осваиваем PIC24
так что кварц сконфигурировать надо программно ?
|
|
|
|
29.04.2010, 23:43
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Dtolok
|
так что кварц сконфигурировать надо программно ?
|
Угу , пример на ASM30 :
PHP код:
|
.include "p24hj256gp610.inc"
.equiv rgb_port,LATD ; define RGB output port here
.equiv vsync_port,LATD ; define VSYNC port...
.equiv vsync_bit,8 ; ...and bit at VSYNC port here
.equiv kbd_port,PORTF ; define KBD Clock and Data port...
.equiv kbd_clk,4 ; ...and Clock input port bit...
.equiv kbd_data,5 ; ...and Data input port bit
.equiv oc_byte,IFS2
.equiv oc_bit,0x000C ; OC8IF
config __FBS, RBS_NO_RAM & BSS_NO_FLASH & BWRP_WRPROTECT_OFF
config __FSS, RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF
config __FGS, GSS_OFF & GCP_OFF & GWRP_OFF
config __FOSCSEL, FNOSC_PRIPLL & IESO_OFF
config __FOSC, FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT
config __FWDT, FWDTEN_OFF & WINDIS_OFF
config __FPOR, FPWRT_PWR128
config __FICD, JTAGEN_OFF & ICS_PGD1
|
---------cut------------
PHP код:
|
; --- oscilator -----------------------
mov #0b0000000000000000,w0 ; XT 4 MHz
mov w0,CLKDIV ; XT 4 MHz
mov #80,w0 ; XT 4 MHz
mov w0,PLLFBD ; XT 4 MHz Feedback Divider
; mov #0b0000000000000100,w0 ; FRC 7.37 MHz
; mov w0,CLKDIV ; FRC 7.37 MHz
; mov #130,w0 ; FRC 7.37 MHz
; mov w0,PLLFBD ; FRC 7.37 MHz Feedback Divider
|
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
30.04.2010, 10:04
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Dtolok
|
так что кварц сконфигурировать надо программно ?
|
Можно и так
Код:
|
IESO_OFF // Two Speed Start-up:Disabled
& FNOSC_PRI // Primary oscillator (XT, HS, EC)
& FCKSM_CSDCMD // Clock switching and clock monitor:
& OSCIOFNC_OFF // OSCO/RC15 function:
& IOL1WAY_OFF // Однократная запись настройки выводов периферии
& I2C1SEL_SEC //
& POSCMOD_HS // Включение HS генератора |
|
|
|
|
30.04.2010, 10:06
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от dosikus
|
Угу , пример на ASM30 :
PHP код:
|
; --- oscilator ----------------------- mov #0b0000000000000000,w0 ; XT 4 MHz mov w0,CLKDIV ; XT 4 MHz mov #80,w0 ; XT 4 MHz mov w0,PLLFBD ; XT 4 MHz Feedback Divider ; mov #0b0000000000000100,w0 ; FRC 7.37 MHz ; mov w0,CLKDIV ; FRC 7.37 MHz ; mov #130,w0 ; FRC 7.37 MHz ; mov w0,PLLFBD ; FRC 7.37 MHz Feedback Divider
|
|
У С30 есть встроенные функции, для переключения генераторов используются такие
Код:
|
__builtin_write_OSCCONH(0x02); // Выполнение разблокирующей процедуры и переключение на кварцевый
__builtin_write_OSCCONL(0x01); // Запуск процедуры переключения |
|
|
|
|
30.04.2010, 22:12
|
|
Гражданин KAZUS.RU
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
|
Re: Осваиваем PIC24
ну ваще в восторге!! микробасик через пиккит2 при компиляции сразу программу на автомате в пик24
|
|
|
|
30.04.2010, 22:15
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Dtolok
|
ну ваще в восторге!! микробасик через пиккит2 при компиляции сразу программу на автомате в пик24
|
В MPLAB так же . Если настроишь...
__________________
Осторожно , злой кот
|
|
|
|
30.04.2010, 22:49
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Осваиваем PIC24
Еще советую объявлять не маскируемые прерывания (trap). Особенно на этапе отладки, да и вообще всегда. Чтобы при возникновении исключения не происходил "вводящий в ступор" сброс (во время работы отладчика), а переход по нужному вектору.
Код:
|
//Trap
void __attribute__((interrupt,no_auto_psv)) _OscillatorFail(void)
{
INTCON1bits.OSCFAIL = 0;
//сигнал о возникновении
LATxbits.LATxx = 1; //светодиод
while(1);
}
void __attribute__((interrupt,no_auto_psv)) _AddressError(void)
{
INTCON1bits.ADDRERR = 0;
//сигнал о возникновении
LATxbits.LATxx = 1; //светодиод
while(1);
}
void __attribute__((interrupt,no_auto_psv)) _StackError(void)
{
INTCON1bits.STKERR = 0;
//сигнал о возникновении
LATxbits.LATxx = 1; //светодиод
while(1);
}
void __attribute__((interrupt,no_auto_psv)) _MathError(void)
{
INTCON1bits.MATHERR = 0;
//сигнал о возникновении
LATxbits.LATxx = 1; //светодиод
while(1);
} |
|
|
|
|
30.04.2010, 23:07
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Осваиваем PIC24
Насчёт "да и вообще всегда" надобно,ИМХО, аккуратнее в объяснениях. Какой смысл в том, что проц по сбою засядет в вечном цикле? А некоторые, по неопытности, могут принять это за чистую монету.
|
|
|
|
30.04.2010, 23:12
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от st_1
|
Насчёт "да и вообще всегда" надобно,ИМХО, аккуратнее в объяснениях. Какой смысл в том, что проц по сбою засядет в вечном цикле? А некоторые, по неопытности, могут принять это за чистую монету.
|
Смысл в том, что будет видно что произошло, а так будет происходить просто сброс и по неопытности начнутся вопросы, а почему... а может глюк...
Например, забыли вы установить бит bset CORCOR,#PSV (CORCONbits.PSV) и попытались считать данные из программной памяти через PSV. Если у вас не будет объявлено прерывание произойдет сброс, иначе переход по вектору Address error.
Тут есть выбор попытаться разрулить сбой или безопасно сбросить мк и подать сигнал об этой ошибке любым способом. Тут все зависит от задачи и типа сбоя.
Последний раз редактировалось realid; 30.04.2010 в 23:23.
|
|
|
|
01.05.2010, 09:42
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от realid
|
Еще советую объявлять не маскируемые прерывания (trap).
|
Рыба есть тут \Microchip\MPLAB C30\support\templates\c\traps.c
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:55.
|
|