вот на что натолкнулся, слепо взяв за основу пример с сайта
в файле startup_hardware_init_iar.s (который мало кто вообще смотрит ) написано следующее
PCLKSEL0 equ 0x400FC1A8 ;-- PCLKSEL0 tn_startup_hardware_init ;-- PCLKSEL0 - UART0, SPI, Timer 1 (MAT1.1), PWM1 (PWM1.3) ldr r1, =PCLKSEL0 ldr r0, [r1] orr r0, r0, #0x01000000 orr r0, r0, #(1<<6) ;-- UART0 - Bits 7:6 = 01; PCLK_peripheral = CCLK orr r0, r0, #(1<<16) ;-- SPI - Bits 17:16 = 01; PCLK_peripheral = CCLK orr r0, r0, #(1<<4) ;-- Timer 1 - Bits 5:4 = 01; PCLK_peripheral = CCLK orr r0, r0, #(1<<12) ;-- PWM1 - Bits 13:12 = 01; PCLK_peripheral = CCLK str r0, [r1] bx lr
но в LPC1778 (в отличии от LPC1768) по адресу 0x400FC1A8 расположен регистр PCLKSEL который уже отвечает не конкретно делить частоту для каждого модуля периферии а для всей периферии, и при выполнении этой строки выставиться делитель на 30.
Вот, типа отрапортовал !
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|