впервые взял 16-битку pic24fj128gb106. теперь никак не могу ее настроить.
что есть: mplab + C30 + pickit2 + pic24fj128gb106
есть биты RG6, RG7, RG8, RG9. в начале настроил на вывод,
потом выставляю на них еденицы.
PORTGbits.RG6 = 1;
PORTGbits.RG7 = 1;
PORTGbits.RG8 = 1;
PORTGbits.RG9 = 1;
в отладчике MPLAB SIM все ок. PORTG = 00000011 11000000.
а когда смотрю отладчиком PicKit2 то ведет себя по разному. если смотреть пошагово,
то все ок, биты ставятся в 1. но если поставить точку останова на while(1);
то PORTG = 00000010 10000000 ????
возможно я не отключил какую-то периферию. перерыл весь даташит, вроде все выключено.
догадвыюсь что все очень просто. помогите, хелп, не вижу где я туплю.
вот код:
CODE
#include "p24fxxxx.h"
_CONFIG2( IESO_OFF & PLLDIV_NODIV & FNOSC_FRC & FCKSM_CSECME & OSCIOFNC_OFF & POSCMOD_HS);
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx1 & FWDTEN_OFF & WINDIS_OFF);
int main()
{
ClrWdt();
AD1PCFG=0xFFFF; // dis analog input
TRISG = 0b0000111111;
ODCG = 0b0000000000;
// comparator disable
CVRCON = 0;
CM1CON = 0b0000000000010011;
CM2CON = 0b0000000000010011;
CM3CON = 0b0000000000010011;
PORTGbits.RG6 = 1;
PORTGbits.RG7 = 1;
PORTGbits.RG8 = 1;
PORTGbits.RG9 = 1;
while(1);
return 0;
}
_CONFIG2( IESO_OFF & PLLDIV_NODIV & FNOSC_FRC & FCKSM_CSECME & OSCIOFNC_OFF & POSCMOD_HS);
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx1 & FWDTEN_OFF & WINDIS_OFF);
int main()
{
ClrWdt();
AD1PCFG=0xFFFF; // dis analog input
TRISG = 0b0000111111;
ODCG = 0b0000000000;
// comparator disable
CVRCON = 0;
CM1CON = 0b0000000000010011;
CM2CON = 0b0000000000010011;
CM3CON = 0b0000000000010011;
PORTGbits.RG6 = 1;
PORTGbits.RG7 = 1;
PORTGbits.RG8 = 1;
PORTGbits.RG9 = 1;
while(1);
return 0;
}