Перейти к содержанию
    

Вливаюсь в коллектив ARMоводов ч.2

Прошу помочь стартануть.

Использую:IAR6.10, MT-link, кит плата LPC-H2103.

Взял ИАРовский пример "IARMiniDev"

Пытаюсь переделать под мигание диодом на плате LPC-H2103.

Ничего не получается...

делаю так:

int main(void)
{
  // Disable PLL
  PLLCON = 0;
  // Write Feed
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // Set periphery divider /4
  APBDIV_bit.APBDIV  = 0;
  // Memory map init flash memory is mapped on 0 address
#ifdef FLASH
  MEMMAP_bit.MAP = 1;
#else
  MEMMAP_bit.MAP = 2;
#endif

  // Init variables
  PatternInd   = 0;
  pNextPattern = pLedPatterns[0];

  __disable_interrupt();
  // Init VIC
  VicInit();

  // Init GPIO
  PINSEL0 = PINSEL1 = 0;
  // Disable fast IO
  SCS_bit.GPIO0M = 0;
  // Set pins connect to LEDs as outputs
  IODIR = LED_MASK;
  // All LEDs off
  IOCLR = LED_MASK;
  KeysInit();

  // Init timer
  // Reset and stop timer0
  T0TCR = 2;
  // Set timer counters mode - clock by PCLK
  T0CTCR = 0;
  // Set timer prescaler
  T0PR  = 0;
  // Set timer period
  T0MR0 = PCCLK/TICK_PER_SEC;
  // Set match action - interrupt by MACH0 enable, reset counter
  T0MCR = 3;
  // No external action
  T0EMR = 0;
  // Assign to IRQ
  VICIntSelect_bit.TIMER0 = 0;
  // Set interrupt slots
  VICVectAddr3 = (unsigned int) Timer0Handler;
  VICVectCntl3_bit.NUMBER = VIC_TIMER0;
  VICVectCntl3_bit.ENABLED = 1;
  // Timer 0 interrupt enable
  VICIntEnable_bit.TIMER0 = 1;
  // Enable timer0
  T0TCR = 1;

// __enable_interrupt();

  while(1)
  {
  
    FIOCLR = LED_MASK;
   // wait();
   FIOSET = LED_MASK;
    //wait();
  
  
  
  
  
  };
} // main(void)

В режиме пошаговой отладки диод нереагирует

пробовал так:

    IOCLR = LED_MASK;
   // wait();
   IOSET = LED_MASK;
    //wait();

Результата тоже нет.

В настройках проекта (ROMstart= 0x00000044, RAMstart=0x40000040)

Проект прикладываю.Схему платы тоже.

 

v03_lsp2103_blink.zip

LPC2103.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Диодик, как я понимаю, "STAT green" ?

 

Вопросы на засыпку:

- к какой ножке МК он подключен?

- какой ножкой (ножками) МК Вы управляете?

 

Ну и претензия к Станимиру Боневу, что написал этот пример - мог бы расписать, что и куда подключено на IAR-LPC-2103 Mini evaluation board.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Диодик, как я понимаю, "STAT green" ?

да.

Вопросы на засыпку:

- к какой ножке МК он подключен?

- какой ножкой (ножками) МК Вы управляете?

Пин P0.26. Ну вот собственно и непонятно как ножками(или ножкой) то дрыгать. По аналогии с инициализацией порта пытался сделать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо делать "по аналогии". Надо делать по документации. Работает гораздо лучше, я проверял :)

 

#define BIT(x) (1UL<<(x))

 

IO0DIR = BIT(26); // настроили на выход

 

IO0SET = BIT(26); // погасили

IO0CLR = BIT(26); // зажгли

 

 

LED_MASK, если Вы ничего не меняли в примере, дёргает совсем другие ножки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу помочь стартануть.

Напишите хоть три строчки НО СВОИ а не copy-paste.

 

 

Ну и претензия к Станимиру Боневу, что написал этот пример

Это Вы еще мало творчества примерописателей видимо видели :(. Бонев один из самых вменяемых, поверьте!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На это пишет что порты неопределены:

Error[Pe020]: identifier "IO0DIR" is undefined 
Error[Pe020]: identifier "IO0SET" is undefined 
Error[Pe020]: identifier "IO0CLR" is undefined

Где их надо определить?

зы: Си и IAR начинаю изучать, и по этому еще не привык к организации проекта. Сильно не пинайте, как сейчас говорят.

Напишите хоть три строчки НО СВОИ а не copy-paste.

Ну вот и попробовал. Кругом куча граблей. Заливаю прошивку а выхлопа нет.

Хотелось бы запустить на чужом примере, а потом разобраться в достоинствах и недостатках кода и примера.

Ну что тут плохого? Добавляешь своего кода(не копипаст) в программу пример и проверяешь адекватность полученного ожидаемому.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А это уже ко мне претензия :)

 

На более "толстых" камнях помимо порта 0 есть и 1,2,3,4, соответственно, там эти регистры нумерованные.

 

В документации на LPC2101..2103 эти регистры значатся без индекса - просто IODIR, IOSET, IOCLR. Думаю, в хедере IAR'а iolpc2103.h сделано точно так же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В документации на LPC2101..2103 эти регистры значатся без индекса

О! оно.. вот так заработала:

IOSET = BIT(26); // погасили
IOCLR = BIT(26); // зажгли

Спасибо! :cheers:

Буду капать дальше!

 

Подскажите что означает 1UL в

#define BIT(x) (1UL<<(x))

В хелпе iar найти неполучается..

По файлу они везде:

#define FOSC            14745600UL
#define TICK_PER_SEC    (8UL)
#define TIM_DPER        ((PCCLK*DELTA_PER)/1000UL)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите что означает 1UL в

Б. Керниган, Д. Ритчи

Язык программирования Си

 

раздел "константы".

 

Ну и остальные разделы тоже стоит прочитать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Б. Керниган, Д. Ритчи Язык программирования Си

раздел "константы".

В книге нет описания. Нашел здесь

UL тип данных (unsigned long int).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Погуглил. Действительно, в первом издании (и что оно в интернетах делает?) этого нет.

Читайте второе!

K_R_C_Language.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...