Цитата(KRS @ Feb 27 2008, 17:55)

А откуда вы знаете что в регистрах, без отладчика?
Макросы случайно никакие не используются при старте отладки?(какая среда, отладчик)
И еще хорошо бы исходник посмотреть
1. Через УАРТ запрашию содержимое регистров.
2. Среда ИАР 4.41A, его отладчик через RDI и MT-Link.
3. Исходники:
Цитата
#define LER0_EN ( 1 << 0 )
#define LER1_EN ( 1 << 1 )
#define LER2_EN ( 1 << 2 )
#define LER3_EN ( 1 << 3 )
#define LER4_EN ( 1 << 4 )
#define LER5_EN ( 1 << 5 )
#define LER6_EN ( 1 << 6 )
#define TCR_CNT_EN 0x00000001
#define TCR_RESET 0x00000002
#define TCR_PWM_EN 0x00000008
#define PWMSEL2 ( 1 << 2 )
#define PWMSEL3 ( 1 << 3 )
#define PWMSEL4 ( 1 << 4 )
#define PWMSEL5 ( 1 << 5 )
#define PWMSEL6 ( 1 << 6 )
#define PWMENA1 ( 1 << 9 )
#define PWMENA2 ( 1 << 10 )
#define PWMENA3 ( 1 << 11 )
#define PWMENA4 ( 1 << 12 )
#define PWMENA5 ( 1 << 13 )
#define PWMENA6 ( 1 << 14 )
static void PWM_Init( void )
{
PWM1PR = 0x00000000;
PWM1TCR = TCR_RESET;
PWM1MCR = 0x00000002;
}
static void PWM_Set( INT32U freq )
{ int i = 3;
INT32U period;
lPWMSET:
i--;
if ( i < 0 ) {
goto lEND;
}
period = BSP_CPU_PclkFreq( PCLK_PWM1 );
period = period / freq;
PWM1MR0 = period;
PWM1MR4 = period / 2;
PWM1LER = LER0_EN | LER4_EN;
for ( period = 0; period <= 1000; period++ ) {}; // DEBUG: wait PWM1MRx apply
if ( PWM1LER != 0 ) {
goto lPWMSET;
}
lEND:;
}
static void PWM_Start( void )
{
PWM1PCR |= PWMENA4;
PWM1TCR = TCR_CNT_EN | TCR_PWM_EN;
}
static void PWM_Stop( void )
{
PWM1PCR &= ~PWMENA4;
PWM1TCR = 0x00;
}
void main (void)
{
CPU_INT08U err;
BSP_IntDisAll(); /* Disable all interrupts until we are ready to accept them */
#if ( PWM_FREQ_OUT == DEF_ENABLED )
PWM_Stop();
PWM_Init();
PWM_Set( 1228800 );
PWM_Start();
#endif //PWM_FREQ_OUT
....
4. Из МАКРОСов только LPC2378_Flash.mac:
Цитата
execUserPreload()
{
__writeMemory32(0x00000001, 0xE01FC040, "Memory"); // MEMMAP = 1;
}