roboforum.ru

Технический форум по робототехнике.

LPC1111... Вопросы.

ARM7, ARM9, ARM11 etc.

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение Michael_K » 12 дек 2010, 21:28

итого:
пусть зряплата инженера 45 тыр. в месяце 22 рабочих дня по 8 часов.
значит час стоит 250 руб.

Потерял два часа, на ровном месте. проблему не решил.
Минус 500 рублей по времени.
Да еще и плату переделывать.

Такая вот арифметика.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение =DeaD= » 12 дек 2010, 21:30

Да еще учесть налоги, амортизацию раб. места, отпускные - получится не 45тр в месяц, а все 65-75тр легко.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение Сергей » 12 дек 2010, 21:31

ну знаешь, по моему в этом и заключается профессия инженера :) Иначе было бы совсем просто
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение Michael_K » 12 дек 2010, 21:31

=DeaD= писал(а):Да еще учесть налоги, амортизацию раб. места, отпускные - получится не 45тр в месяц, а все 65-75тр легко.

угу - ну это я для ровного счета :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение Сергей » 12 дек 2010, 21:32

Я помню допустил ошибку в дескрипторе USB устройства, но все работало нормально до одного момента. Неделю разбирался.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сообщение Michael_K » 12 дек 2010, 21:32

Это я к тому, что некоторые тут хотят купить "на копейку пятаков"
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... Хардварный запуск АЦП

Сообщение Michael_K » 16 дек 2010, 01:03

Бьюсь об новые грабли...

По даташиту АЦП в LPC1111 может запускаться автоматом от таймера.
Таймер работает правильно (сигнал CT16B0_MAT0 вижу на ноге)
АЦП постоянно вызывает прерывания - то есть только закончилось предыдущее, сразу опять влетает в тот же обработчик. По идее, как я понимаю, бит прерывания должен сниматься при чтении регистра STAT. Не работает.
(Для отладки вывел на ногу многострадального светодиода и тыркаю осциллом).

Код инициализации и хэндлера:

Код: Выделить всёРазвернуть
void ADCInit( void )
{
 
// Enable ADC

   LPC_SYSCON->PDRUNCFG &= ~(0x1<<4);   // Disable Power down bit to the ADC block.
   LPC_SYSCON->SYSAHBCLKCTRL |= (1<<13);   // Enable AHB clock to the ADC. */

//  ADC I/O config

   LPC_IOCON->R_PIO1_1  &= ~0x8F;   
   LPC_IOCON->R_PIO1_1  |= 0x02;   // ADC IN2 - SIGNAL INPUT

// ADC config

   LPC_ADC->CR = ( 0x04 << 0 ) |   // SEL=1,select channel 2 on ADC0 (SIGNAL)
   ( ( 11 - 1 ) << 8 ) |         // CLKDIV = Fpclk / 1000000 - 1
   ( 0 << 16 ) |               // BURST = 0, no BURST, hardware controlled
   ( 0 << 17 ) |               // CLKS = 0, 11 clocks/10 bits
//   ( 1 << 21 ) |               // PDN = 1, normal operation
//   ( 0 << 22 ) |               // TEST1:0 = 00
   ( 6 << 24 ) |               // START = 6 A/D conversion start on CT16B0_MAT0
   ( 1 << 27 );               // EDGE = 1 (CAP/MAT singal rising,trigger A/D conversion)

// Config Interrupt

   NVIC_EnableIRQ(ADC_IRQn);
   LPC_ADC->INTEN = 0x100;      // Enable general interrupt

   return;
}

#define LED_RED()   { LPC_GPIO1->MASKED_ACCESS[0x0110] = 0x0100; }
#define LED_OFF()   { LPC_GPIO1->MASKED_ACCESS[0x0110] = 0x0000; }

void ADC_IRQHandler (void)
{
volatile unsigned int temp;

   temp = LPC_ADC->STAT;               // Read ADC will clear the interrupt
   temp = ( LPC_ADC->DR[2] >> 6 ) & 0x3FF;   // Read ADC value

   LED_RED();
   for(temp=2;temp>0;temp--);
   LED_OFF();

   return;
}


Добавлено спустя 1 минуту 2 секунды:
Re: LPC1111... Вопросы.
Если что, использую Кейл

Добавлено спустя 16 минут 38 секунд:
Re: LPC1111... Вопросы.
Вопрос снят.
Нужно разрешать (оказывается) не глобальное прерывание от АЦП, а прерывание от нужного канала... Дока отвратительная.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... Вопросы.

Сообщение Сергей » 16 дек 2010, 03:12

Доки ужасные, все на скорую руку. По LPC2000 и LPC1700 были намного лучше.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... Вопросы.

Сообщение Виталий » 16 дек 2010, 03:35

Вот мне всегда было интересно. Они же тестируют свои девайсы, значит должны быть тесты, а значит и коды. Почему бы их не выкладывать?
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: LPC1111... Вопросы.

Сообщение Сергей » 16 дек 2010, 09:13

Да они и не запаривались вообще, к примеру по целому регистру для каждой ножки микроконтроллера + перемешаны в порядке и не подряд в адресном пространстве.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... Вопросы.

Сообщение Michael_K » 16 дек 2010, 13:31

Будете смеяться, но порядок там все же есть.
Они расположены в порядке нумерации ног на корпусе...

P.S.
Меня телевизор филипс до сих пор в тупик ставит своей "юзабилити"...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... Вопросы.

Сообщение Сергей » 16 дек 2010, 14:32

Смеюсь :) Только вот API не прикрутить нормальное к IOCON.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... Вопросы.

Сообщение Michael_K » 16 дек 2010, 16:27

Ну, честно говоря, API меня волнует в последнюю очередь,
(имхо, нафиг оно не упало в реальных проектах), но неудобно, согласен.
Еще и ноги названы в хеадерах фиг знает как...

Да даже не это напрягает - не работает же по даташиту, сволочь!!!
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: LPC1111... Вопросы.

Сообщение Сергей » 16 дек 2010, 16:35

Насчет API конечно он не является приоритетным. Но, к примеру, периферия у LPC2000 и LPC1700 совпадает полностью и ничего переделывать не надо было, я просто код перекинул и все заработало. А здесь же (только с LPC1343) надо было писать заново и разбираться почему не работает.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: LPC1111... оверклокинг :)

Сообщение Michael_K » 30 янв 2011, 02:53

Поигрался тут немножко - случайно завел проц на 108 МГц (глюканул в битиках PLL).
А он взял и заработал... как минимум ядро, память, таймеры, ноги (АЦП и запись во флэш не проверял).
Спокойно лежит вот и работает минут двадцать уже... не греется, не зависает, такты не теряет...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Пред.След.

Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron