реклама на сайте
подробности

 
 
> Какая максимальная частоты вых MATCH0.0, LPC2103
asen
сообщение Jun 26 2009, 14:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Вообщем настроил проц работает на 64 МГц таймер на той же частоте (APBDIV |=0x01; и T0PR = 0; ) частота совпадений стоит 8МГц а нога которая отвечает за матч дергаеться с частотой 3.25МГц что к чему прерывание по совподенияю не настроенно и вообще все прерывания запрещены ! Что это придел чтоль ?? не гуд силгал на ноге нужен чтобы в фоне тактировать внешню микросхемму smile.gif) Про дрыганье софтовое я читал и вкурсе но мне нужно чтоб это не кушала все ресурсы проца ! Что такое не возможно ответьтте плиззsmile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
asen
сообщение Jun 27 2009, 01:20
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Вот код
/**************************CORE ARM7TDMI***********************************
#define OSCILLATOR_CLOCK_FREQUENCY 16000000
#define max_F_MUL 4
#define max_F_DIV 1
//**************************IO_PORT*****************************************
#define SCK_OUT 1<<4
#define MOSI 1<<6
#define MISO 1<<5
#define CLK_OUT 1<<17
#define LED 1<<18


//*****************SPI0*************************
#define SPI0_EN 1
#define SPI0_FCLK 10000
#define SPI0_MASTER 1

//*****************UART0************************
#define UART0_EN 1
#define UART0_BAUND 9600
#define VIC_UART0_bit (1 << VIC_UART0)

//***************TIMER0************************
#define TIMER0_EN 1
#define OVR_TMR0_F 8000000
#define VIC_TIMER0_bit (1 << VIC_TIMER0)


unsigned int processorClockFrequency(void){ //CCLK=14768000
//return real processor clock speed
return OSCILLATOR_CLOCK_FREQUENCY * (PLLCON & 1 ? (PLLCFG & 0xF) + 1 : 1);
//если (PLLCON & 1)=1 то возвращаем (OSCILLATOR_CLOCK_FREQUENCY*(PLLCFG & 0xf)+1) если PLL подключен
//иначе возвращаем (OSCILLATOR_CLOCK_FREQUENCY * 1)
//PLLCFG.0 - PLLCFG.4 - значения умножителя
}
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
unsigned int peripheralClockFrequency(void){
//VPBDIV - determines the relationship between the processor clock (cclk)
//and the clock used by peripheral devices (pclk)=3 686250
unsigned int divider;
switch (APBDIV & 3)
{
case 0: divider = 4; break;
case 1: divider = 1; break;
case 2: divider = 2; break;
}
return processorClockFrequency() / divider;
}
void F_Init(unsigned char f_mul) //ф-я рассчёта умножителя частоты ядра и делителя частоты периферии
{
//devide or multiplier
//here is calculate frecuence
PLLCFG_bit.MSEL = (f_mul)-1; //M - multiplier=fmul
PLLCFG_bit.PSEL = 0x0; //P - devider default =1
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;


//enable or connect PLL
//enable PLL
PLLCON_bit.PLLE = 1;
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;

//wait for PLOK (correct freq)
while(PLLSTAT_bit.PLOCK == 0){}

//connect PLL
PLLCON_bit.PLLC = 1;
//set changes (require from architecture)
PLLFEED_bit.FEED = 0xAA;
PLLFEED_bit.FEED = 0x55;
APBDIV |=0x01;
}
void PortInit(void) {
PINSEL0 = 0x0; //set first functionality of this pin
PINSEL1 = 0x0; //set first functionality of this pin
PINSEL0_bit.P0_3 = 2;
IODIR |= SCK_OUT;
IODIR |=MOSI;
IODIR |=MISO;
IODIR |=LED;
IODIR |=CLK_OUT;
IOCLR |=LED;

}
void InitTimer_0()
{
T0TCR = 0; // Disable timer 0.
T0TCR = 2; // Reset timer 0.
T0TCR = 0;
T0IR = 0xff; // Clear timer 0 interrupt line.
T0PR = 0; // :7
T0CTCR = 0;
T0MR0 = peripheralClockFrequency()/(2*OVR_TMR0_F);
T0MCR = 2; // Reset, stop and interrupt on MR0 (match register 0).

T0CCR = 0; // Capture is disabled.
T0EMR = 49; // No external match output.
T0TCR = 1; //запускаем таймер
}

void set_led (void)
{
// IODIR |= LED;
IOCLR |= LED;
// IOCLR |= CLK_OUT;
}

void clr_led (void)
{
IOSET |= LED;
// IOSET |= CLK_OUT;
}

int main()
{
setup_sys();
while (1)
{
set_led();
__delay_cycles(1000000);
clr_led();
__delay_cycles(1000000);
};
return 0;
}
Ниче не понимаю он вообще по своему созданию изночально может дергать с такой скоростью нет ??
Go to the top of the page
 
+Quote Post
meister
сообщение Jun 27 2009, 05:43
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484



Цитата(asen @ Jun 27 2009, 05:20) *
T0MR0 = peripheralClockFrequency()/(2*OVR_TMR0_F);


Надо так:
Код
T0MR0 = peripheralClockFrequency()/(2*OVR_TMR0_F) - 1;


Цитата(asen @ Jun 27 2009, 05:20) *
Ниче не понимаю он вообще по своему созданию изночально может дергать с такой скоростью нет ??


Настройте дергание ноги на 10кгц (чтобы точно), как настроите, настройте на 8мгц и узнаете.

Сообщение отредактировал meister - Jun 27 2009, 05:44
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- asen   Какая максимальная частоты вых MATCH0.0   Jun 26 2009, 14:00
- - meister   Цитата(asen @ Jun 26 2009, 18:00) Вообщем...   Jun 26 2009, 14:17
- - asen   Так с частотой до мегагерца все просто супер он ма...   Jun 27 2009, 09:25
- - Юрий Санвальд   asen, вы пробовали посмотреть форму сигнала на нож...   Jun 29 2009, 10:33
- - etoja   Для генерации выходного тактового сигнала можно ис...   Jun 29 2009, 11:21
- - asen   Да с ШИМ попробую а в данный момент нагружен на ре...   Jun 29 2009, 11:43
|- - Юрий Санвальд   Цитата(asen @ Jun 29 2009, 15:43) Да с ШИ...   Jun 29 2009, 12:21
- - asen   Врятли это мне кажеться эффект так как если бы име...   Jun 29 2009, 13:10
|- - Юрий Санвальд   Цитата(asen @ Jun 29 2009, 17:10) Врятли ...   Jun 30 2009, 13:39
- - Abo   Я вот так половину тактовой частоты периферии пода...   Jun 30 2009, 11:49
- - asen   Незнаю почему но не на том способе с шим не на сп...   Jul 1 2009, 07:25
|- - meister   Цитата(asen @ Jul 1 2009, 11:25) Вы пробы...   Jul 1 2009, 07:56
- - asen   А полосу осцила сказать можете ?? у нас toggle ид...   Jul 1 2009, 10:38
|- - meister   Цитата(asen @ Jul 1 2009, 14:38) А полосу...   Jul 1 2009, 10:54
- - asen   У меня TDS1002 60МГц ниче не пойму может потому чт...   Jul 2 2009, 02:10
- - meister   Цитата(asen @ Jul 2 2009, 06:10) матч исп...   Jul 2 2009, 05:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016