| Автор |
Съобщение |
|
borisov
Ранг: Минаващ
Регистриран на: Съб Сеп 05, 2009 12:01 am Мнения: 39
|
 Проблем с RTCC на dsPIC33FJ128GP802
Здравейте, моря се с тоя RTCC модул някой да го е пробвал. За да работи му е нужен 32.768KHz кварц поставен на изводите за втори осцилатор единствено от там може да получава тактов сигнал. TMR1 също може да получава такт от там, но и той отказва същия резултат се получава, и като смених процесора с dsPIC33FJ12GP202 иначе в други режими таймера си работи. Мислех си, че проблема е в кристала и свързването му, но като го задам като главен клок си работи нормално и това ме обърква още повече, не знам къде греша.
|
| Пон Май 23, 2011 11:08 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
При мен на PIC24 си работи. Провери дали втория осцилатор е разрешен и дали RTCC е сетнат да получава клок от него. Изглежда да е забранен.
|
| Вто Май 24, 2011 9:31 am |
|
 |
|
borisov
Ранг: Минаващ
Регистриран на: Съб Сеп 05, 2009 12:01 am Мнения: 39
|
Ето и програмката.
void main() {
ADPCFG = 0xffff;
TRISB = 0x0000;
LATB = 0x0000;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
///////////////////////RTCC////////////////////////////////
NVMKEY = 0x55;
NVMKEY = 0xAA;
RCFGCAL.RTCWREN = 1;
RCFGCAL.RTCEN = 0;
RCFGCALbits.RTCPTR = 0b11;
RTCVAL = 0x0007;
RTCVAL = 0x1028;
RTCVAL = 0x0110;
RTCVAL = 0x0000;
RCFGCAL.RTCEN = 1;
RCFGCAL.RTCWREN = 0;
RCFGCALbits.CAL = 0x00;
OSCCONbits.LPOSCEN = 1; //ENABLE SECOND OSC for RTCC
///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
while(1){
while(RCFGCALbits.RTCSYNC == 1){asm{nop}}
RCFGCALbits.RTCPTR = 0b11;
year = RTCVAL;
month_date = RTCVAL;
wday_hour = RTCVAL;
min_sec = RTCVAL;
///////////////////////////////////////
}
}
|
| Вто Май 24, 2011 3:05 pm |
|
 |
|
Reader
Ранг: Новодошъл
Регистриран на: Нед Апр 17, 2005 9:23 am Мнения: 112
|
Не знам как е в PIC30, но в PIC24 не можеш директно да пишеш така: а трябва да изпълниш отключваща последователност или да използваш готов макрос, напр. __builtin_write_OSCCONL: Вторият код е за PIC24.
|
| Чет Май 26, 2011 2:53 pm |
|
 |
|
borisov
Ранг: Минаващ
Регистриран на: Съб Сеп 05, 2009 12:01 am Мнения: 39
|
Ами ще пробвам така, иначе замерих с осцилоскоп на изводите на кварца и няма никой, а мисля че трябва защото в други случаи е имало синусоида с честотата на кварца.
|
| Чет Юни 02, 2011 10:31 pm |
|
 |
|
Reader
Ранг: Новодошъл
Регистриран на: Нед Апр 17, 2005 9:23 am Мнения: 112
|
Винаги са ми изглеждали странно хората, чиято религия не им позволява да четат инструкции.
В документацията, на стр.146 си пише ясно:
|
| Пон Юни 06, 2011 10:28 am |
|
 |
|
borisov
Ранг: Минаващ
Регистриран на: Съб Сеп 05, 2009 12:01 am Мнения: 39
|
Преди да почна да пиша на С++ съм програмирал на асемблер така, че инструкциите на сън ги бълнувам, а тая документация съм я чел вече и изпълних всичко, в крайна сметка резонатора не беше нещо наред, но сега се оправи след като го подмених.
|
| Пон Юни 06, 2011 6:28 pm |
|
|