Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
vitaliy14
Родился
Сообщения: 1
Зарегистрирован: Вс май 12, 2024 11:43:19

Re: Программирование STM8

Сообщение vitaliy14 »

[uquote="isorport",url="/forum/viewtopic.php?p=4091041#p4091041"]кто имел опыт программирования STM8 на ассемблере под IAR?
Я разработал тестовый проект для STM8 на ассемблере под IAR лет 10 назад. С тех пор прошло много времени и я с этими МК дел более не имел и практически всё забыл. Однако, проект остался, если интересно, могу прислать в ЛС. Там, в частности, можно посмотреть как сегменты определены.[/uquote]
А можете мне прислать? Пожалуйста.
4ygeca
Родился
Сообщения: 6
Зарегистрирован: Чт янв 16, 2020 18:04:26

Re: Программирование STM8

Сообщение 4ygeca »

Подскажите, пожалуйста, по микроконтроллеру stm8s001j3. Выбор на него пал из-за 5В и 8 ножек, мне больше не надо в поделке. т.е. меньше места только лучше.
В спецификации к микроконтроллеру написано
The PA2, PB0, PB1, PB2, PB3, PB6, PB7, PC1, PC2, PC7, PD0, PD2, PD4, PD7, PE5 and PF4 GPIOs should be configured after device reset in output push-pull mode with output low-state to reduce the device’s consumption and to improve its EMC immunity.

т.е. назначить на выход в режиме пуш-пулл эти ножки и назначить низкий уровень.
в другом же документе an5047 приведен пример кода настройки этих ножек, но там настраивают их просто на выход без пуш-пулл (DDR=1) и никакого низкого уровня на них не назначают( ну это ладно возможно он по умолчанию такой). И пишут
After the device reset, those GPIOs are configured by hardware into input-floating mode. It is recommended to set them into output-mode/low-output-level state.


Код: Выделить всё

/* not connected pins as output low state (the best EMC immunity) 
(PA2, PB0, PB1, PB2, PB3, PB6, PB7, PC1, PC2, PC7, PD0, PD2, PD4, PD7, PE5,
PF4) */
#define CONFIG_UNUSED_PINS_STM8S001 \
{ \
  GPIOA->DDR |= GPIO_PIN_2; \
  GPIOB->DDR |= GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 |
GPIO_PIN_6 | GPIO_PIN_7; \
  GPIOC->DDR |= GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7; \
  GPIOD->DDR |= GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_7; \
  GPIOE->DDR |= GPIO_PIN_5; \
  GPIOF->DDR |= GPIO_PIN_4; \
}


Но возникает вопрос: МК имеет порты от A до F по 8 выводов каждый (итого 48), 16 выводов, указанные в спецификации надо настроить, как указано выше, 12 выводов выходят на реальные пины МК, что делать с остальными 20-ю выводами??? Которые не имеют физического выхода на ножки МК, и не надо специфически настраивать по спецификации??

Проблема же у меня следующего плана:
МК при включении настраивает gpio и осциллятор, затем ждет импульс на входе, после отправляет сообщение по специфическому протоколу, ждет 10с и уходит в halt, просыпается так же по прерыванию на входе, и повторяет все заново. Программа все работает, но при сборке устройства и обкатке в реальных условиях, мк стал нагреваться и переставал работать(сообщение не доходило или были искажения, не проверял), постояв какое то время без питания, работал вновь. И греется он ощутимо пальцем, хотя по идее должен быть в халт режиме.
Я вот грешу на неверную настройку ножек, т.к. я все(включая 20 не указанных в спецификации) не используемые выводы настроил на push-pull и назначил в odr на них 0.

Кто сталкивался с этими МК и как настраивал gpio выводы или может сталкивался с такой же проблемой нагрева?
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 332
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Программирование STM8

Сообщение JackSmith »

1. 4ygeca, ножки паркуют для уменьшения энергопотребления. если оно вас не волнует, оставьте все по умолчанию.
2. парковать, если делать это, следует все ножки. те что не выведены на корпус все равно есть в кристалле.
3. И греется он ощутимо пальцем коротыш. проверяйте свою схему на КЗ.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3471
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Программирование STM8

Сообщение smacorp »

4ygeca, или просто бракованный экземпляр МК. У меня есть один STM32, который прекрасно работает, но греется до 60 градусов и потребляет около 200 мА даже в простое. Другой экземпляр там же работает правильно.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
4ygeca
Родился
Сообщения: 6
Зарегистрирован: Чт янв 16, 2020 18:04:26

Re: Программирование STM8

Сообщение 4ygeca »

JackSmith писал(а):1.ножки паркуют для уменьшения энергопотребления. если оно вас не волнует, оставьте все по умолчанию.
2. парковать, если делать это, следует все ножки. те что не выведены на корпус все равно есть в кристалле.
3. И греется он ощутимо пальцем коротыш. проверяйте свою схему на КЗ.


2. Принял. Спасибо
3. Вот схема, честно ума не дам где в ней может быть КЗ
Изображение
платки заказывал. Питание берется с промышленной платы, которая нормально работает.

4ygeca, или просто бракованный экземпляр МК. У меня есть один STM32, который прекрасно работает, но греется до 60 градусов и потребляет около 200 мА даже в простое. Другой экземпляр там же работает правильно.

Возможно, смущает тот момент, что я сделал 3 таких штуки, одна давно уехала и исправно работает, но это была самая первая прошивка, плата и схема та же. одна у меня на тестовой сборке, там такая же проблема(как оказалось) и третья, на которой выявилась такая проблема. я конечно, не отрицаю, что из 5 МК, которые я заказал 2 дохлые, но как то сомневаюсь.
Сейчас собираю обратно испытательный "стенд" буду все пробовать. Спасибо
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Программирование STM8

Сообщение Z_h_e »

4ygeca писал(а):но это была самая первая прошивка,
ну так залейте эту прошивку и сравните, будет греться новый камень или нет.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3471
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Программирование STM8

Сообщение smacorp »

4ygeca, сомневаетесь? А зря - смотря где брали.

Я как-то на Али взял 5 шт. STM32F103C8T6 одним лотом:

- у одного был просто КЗ по питанию;
- у второго чудеса с нагревом, о которых писал выше;
- третий работал чудесно на всех частотах, кроме как на 72 МГц, отчего USB-HID не определялся;
- и только 2 оставшихся нареканий не вызвали.

То есть, тот продавец торговал лютой отбраковкой. И таких там легион.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
4ygeca
Родился
Сообщения: 6
Зарегистрирован: Чт янв 16, 2020 18:04:26

Re: Программирование STM8

Сообщение 4ygeca »

4ygeca, сомневаетесь? А зря - смотря где брали.

Брал в чипИдипе. Скорее всего вы оказались правы, косячная партия похоже.

4ygeca писал(а):но это была самая первая прошивка,
ну так залейте эту прошивку и сравните, будет греться новый камень или нет.

Попробовал, резульатат тот же.

В общем победил я эту проблему. Кроме как косячной партии МК, у меня объяснения нет.
Когда начал разбираться обнаружил на пине 5 2.8В постоянно весящие, на 7 были 0.9В, т.е. транзисторы были открыты. Сверил с прошивкой и там да, получалось, что после отправки линии он притягивал к земле, открывая ключи, соответственно и питание на них должно быть. Но возникает вопрос почему 2.8В на одном и 0.9В на другом выводе?? И почему из-за них МК грелся??? А спустя время видимо разогревался так, что плыли частоты и сообщение уже не принималось.
В общем добавил в конце отпускание пинов в 0 и греться перестал. Хотя казалось бы нагрузка всего 2 транзистора...
Не зря на сайте ST написано не использовать эти МК для новых изделий... Очень косячные какие то, хапнул горя с ними с самого начала, когда в начале поймал ошибку в коде с неверной настройкой портов и swim слетал из-за того, что одна ножка на несколько портов. Написал предохранитель, после настройки gpio, проверял включен ли swim
Спойлер

Код: Выделить всё

   if (CFG->GCR & 0x1) {
      gpio_reset_default();
   }

Ковыряясь в коде обнаружил, что не запускал таймер на отправку в сон, после того как запустил 2 МК уснули навечно, видимо где то косякнул с настройкой таймера, что прерывание сразу срабатывало. В итоге отказался от этой затеи, до лучших времен) это больше для себя фича)

Всем спасибо, кто откликнулся и пытался помочь.

Кстати, в этом проекте я написал очень, как по мне элегантное, удобное и быстрое решение по начальной инициализации ножек STM8.
СпойлерТут мы генерируем с помощью х-маросов набор констант вида PIN*N*_*STATE*, где *N* номер вывода порта 0-7 и ALL, а *STATE* его определение IN\OUT PP OD и т.д.

Код: Выделить всё

/**
 * @brief: Значения по умолчанию, для инициализации неиспользуемых пинов.
 */
#define DDR_DEFAULT 0xFF
#define CR1_DEFAULT 0x00
#define CR2_DEFAULT 0x00


/*
 * @brief: Макрос инициализации пинов.
 */
#define GPIO_INIT(GPIO, PIN_STATES)                                       \
   do {                                                              \
      GPIO->DDR                                                 \
          = (u8)(((PIN_STATES) & 0xFF0000) >> 16)               \
          | (u8)(DDR_DEFAULT                                    \
            & (u8)(~(((PIN_STATES) & 0xFF000000) >> 24))); \
      GPIO->CR1                                                 \
          = (u8)(((PIN_STATES) & 0x00FF00) >> 8)                \
          | (u8)(CR1_DEFAULT                                    \
            & (u8)(~(((PIN_STATES) & 0xFF000000) >> 24))); \
      GPIO->CR2                                                 \
          = (u8)(((PIN_STATES) & 0x0000FF) >> 0)                \
          | (u8)(CR2_DEFAULT                                    \
            & (u8)(~(((PIN_STATES) & 0xFF000000) >> 24))); \
   } while (0)

/******************************************************************************/
/*                         X-Macros для GPIO pins                             */
/******************************************************************************/
// clang-format off
#define FOREACH_PIN(x, x2)            \
   x (0, x2)             \
   x (1, x2)            \
   x (2, x2)            \
   x (3, x2)            \
   x (4, x2)            \
   x (5, x2)            \
   x (6, x2)            \
   x (7, x2)

#define PIN_MASK(n, x2) PIN##n = (1 << n),


#define FOREACH_PIN_STATE(n, x2)       \
   x2(n, FLOAT_INPUT)          \
   x2(n, PULLUP_INPUT)          \
   x2(n, EXTI_FLOAT_INPUT)       \
   x2(n, EXTI_PULLUP_INPUT)       \
   x2(n, OPEN_DRAIN_OUTPUT)       \
   x2(n, PUSH_PULL_OUTPUT)       \
   x2(n, FAST_OPEN_DRAIN_OUTPUT)       \
   x2(n, FAST_PUSH_PULL_OUTPUT)


#define PIN_STATE_N(n, state) PIN##n##_##state =    \
      (((u32)(1 << n) << 24) |       \
       ((u32)(state & 0b100) << (14 + n)) |    \
       ((u32)(state & 0b010) << (7 + n))  |    \
       ((u32)(state & 0b001) << (n))),

// clang-format on
/******************************************************************************/
/*                         Маски настройки GPIO                               */
/******************************************************************************/

/**
 * @brief: Маски пинов (1<<n)
 */
typedef enum {
   FOREACH_PIN (PIN_MASK, 0)
#undef PIN_MASK
   PIN_ALL = 0xFF
} gpio_pin_mask_n;

/**
 * @brief: Значения конфигурации порта DDRbit CR1bit CR2bit
 */
typedef enum {
   FLOAT_INPUT          = 0b000,
   PULLUP_INPUT          = 0b010,
   EXTI_FLOAT_INPUT       = 0b001,
   EXTI_PULLUP_INPUT      = 0b011,
   OPEN_DRAIN_OUTPUT      = 0b100,
   PUSH_PULL_OUTPUT       = 0b110,
   FAST_OPEN_DRAIN_OUTPUT = 0b101,
   FAST_PUSH_PULL_OUTPUT  = 0b111
} gpio_pin_config_n;

/**
 * @brief: Значения инициализации GPIO
 */
typedef enum {
   FOREACH_PIN (FOREACH_PIN_STATE, PIN_STATE_N)
#undef PIN_STATE_N
   PIN_ALL_PUSH_PULL_OUTPUT = 0xFFFFFF00
} gpio_pin_init_n;

#undef FOREACH_PIN
#undef FOREACH_PIN_STATE

С типами данных u8 u16 u32, думаю все понятно.
Пример инициализации:

Код: Выделить всё

GPIO_INIT (GPIOA, PIN1_FLOAT_INPUT | PIN3_FAST_PUSH_PULL_OUTPUT);
   GPIOA->ODR = RESET;

   /* GPIOB */
   GPIO_INIT (GPIOB, PIN5_FAST_PUSH_PULL_OUTPUT);
   GPIOB->ODR = RESET;

   /* GPIOC */
   GPIO_INIT (GPIOC, PIN3_FAST_PUSH_PULL_OUTPUT
               | PIN4_FAST_PUSH_PULL_OUTPUT
               | PIN5_FAST_PUSH_PULL_OUTPUT | PIN6_PULLUP_INPUT);

   GPIOC->ODR = RESET;

   /* GPIOD */
   GPIO_INIT (GPIOD, PIN1_PULLUP_INPUT | PIN3_PULLUP_INPUT
               | PIN5_PULLUP_INPUT | PIN6_EXTI_FLOAT_INPUT);
   GPIOD->ODR = RESET;

   /* GPIOE */
   GPIO_INIT (GPIOE, PIN_ALL_PUSH_PULL_OUTPUT);
   GPIOE->ODR = RESET;

   /* GPIOF */
   GPIO_INIT (GPIOF, PIN_ALL_PUSH_PULL_OUTPUT);
   GPIOF->ODR = RESET;

Разбираться в х-марос то еще извращение, поэтому можно просто пользоваться)
Проверял и тестировал это все на компиляторе SDCC, все отлично работает.


Код на выходе получается, как если писать константы в регистры, но читаемо и понятно.
Один раз пробежался по всем портам в начале и все быстренько настроилось.
Аватара пользователя
Сирожа
Прорезались зубы
Сообщения: 200
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Откуда: Беларусь

Re: Программирование STM8

Сообщение Сирожа »

Изображение

Я всё никак не домучаю наручные часы. Попали в руки другие индикаторы и я решил переделать плату под них. Индикаторы как мне показалось АЛС314А. Развёл плату, прошил, собрал, а оно не алё. Светится, но не так как надо. Оказалось индикаторы АЛС304Г. А у них общий анод, а нужно с общим катодом. И чтоб не искать новые индикаторы и не перепаивать, а сформировать их и запаять оказалось той ещё задачей.
Возник вопрос, может кто может подправить скомпилированную (исходников нет) прошивку под индикаторы с общим +.

Clock.rar
(4.55 КБ) 139 скачиваний
OKF
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Программирование STM8

Сообщение OKF »

Сирожа, ну ты ещё тот шалун.
MMK1
Родился
Сообщения: 11
Зарегистрирован: Чт янв 14, 2016 08:40:35
Откуда: Москва

Re: Программирование STM8

Сообщение MMK1 »

Проще будет найти АЛС314А. Был бы ты в Москве, я бы тебе их подарил.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Программирование STM8

Сообщение Martian »

не, ну в принципе можно... но мне точно лень. Да и решение MMK1 - идеально.
Аватара пользователя
Сирожа
Прорезались зубы
Сообщения: 200
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Откуда: Беларусь

Re: Программирование STM8

Сообщение Сирожа »

Ехать в Москву к ММК1 мне не кажется таким уж идеальным. Проще на вайлдберисе с озоном купить. Даже не несмотря на их конскую цену окажется дешевле. :) А если серьёзно, то на наших барахолках нашлось только пару предложений. И то выпаянные. Наверное придётся из чипидипа под заказ попробовать.
Да и мои индикаторы доставшиеся бесплатно, бесполезной горкой лежать будут.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Программирование STM8

Сообщение Martian »

Именно это и имел ввиду - взять те, которые нужны. Поездкой ли в Москву, заказом ли в рынко-месте... Но, раз такая разница по цене и так мало предложений, а я недавно начал писать интерфейс дизассемблера для STM8, то подождите недельку и выложите схему часов, если есть. Не получиться напрямую - напишу Вам другую.
Аватара пользователя
Сирожа
Прорезались зубы
Сообщения: 200
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Откуда: Беларусь

Re: Программирование STM8

Сообщение Сирожа »

Может я конечно чего-то не понимаю, но мне кажется что 600р. за один индикатор это многовато.

Изображение
Аватара пользователя
alexvas2004
Открыл глаза
Сообщения: 47
Зарегистрирован: Пн фев 15, 2010 05:28:51

Re: Программирование STM8

Сообщение alexvas2004 »

Здравствуйте всем! Кто-нибудь сможет скомпилировать прошивку из кода во вложении, с измененными пинами на индикатор и датчик?
В таком порядке: Пин STM было-стало: 10-17, 1-15, 2-1, 13-18, 11-19, 18-14, 15-10, 14-6, 12-20, 17-16, 16-13, 20-3.
Код взят отсюда: https://sourceforge.net/p/stm8samples/c ... ermometer/
Вложения
3_digit_voltmeter_as_thermometer.7z
Код
(60.24 КБ) 106 скачиваний
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Программирование STM8

Сообщение Martian »

Все таблицы массивов переписывать? Это простая, но занудная работа. Почему Вы не сделаете её самостоятельно?
И сопоставьте номерам выводов наименования портов, а то есть подозрение, что если Вы этого не сделали сразу, то и в схеме их от балды взяли, тогда вообще нет смысла что либо делать.
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 332
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Программирование STM8

Сообщение JackSmith »

Здравствуйте всем! Кто-нибудь сможет скомпилировать прошивку


проект не собирается.
Спойлер$ make
sdcc -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c interrupts.c
sdcc -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c led.c
sdcc -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c main.c
sdcc -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c onewire.c
onewire.h:133: warning 283: function declarator with no prototype
onewire.h:135: warning 283: function declarator with no prototype
onewire.h:136: warning 283: function declarator with no prototype
onewire.h:138: warning 283: function declarator with no prototype
onewire.h:139: warning 283: function declarator with no prototype
onewire.h:143: warning 283: function declarator with no prototype
onewire.h:145: warning 283: function declarator with no prototype
onewire.h:147: warning 283: function declarator with no prototype
interrupts.h:32: warning 283: function declarator with no prototype
interrupts.h:35: warning 283: function declarator with no prototype
interrupts.h:38: warning 283: function declarator with no prototype
interrupts.h:41: warning 283: function declarator with no prototype
interrupts.h:44: warning 283: function declarator with no prototype
interrupts.h:47: warning 283: function declarator with no prototype
interrupts.h:50: warning 283: function declarator with no prototype
interrupts.h:53: warning 283: function declarator with no prototype
interrupts.h:69: warning 283: function declarator with no prototype
interrupts.h:72: warning 283: function declarator with no prototype
interrupts.h:75: warning 283: function declarator with no prototype
interrupts.h:86: warning 283: function declarator with no prototype
interrupts.h:89: warning 283: function declarator with no prototype
interrupts.h:104: warning 283: function declarator with no prototype
interrupts.h:107: warning 283: function declarator with no prototype
interrupts.h:111: warning 283: function declarator with no prototype
interrupts.h:134: warning 283: function declarator with no prototype
interrupts.h:142: warning 283: function declarator with no prototype
interrupts.h:146: warning 283: function declarator with no prototype
led.h:29: warning 283: function declarator with no prototype
led.h:29: warning 283: function declarator with no prototype
led.h:31: warning 283: function declarator with no prototype
led.h:31: warning 283: function declarator with no prototype
interrupts.h:32: warning 283: function declarator with no prototype
interrupts.h:35: warning 283: function declarator with no prototype
interrupts.h:38: warning 283: function declarator with no prototype
interrupts.h:41: warning 283: function declarator with no prototype
interrupts.h:44: warning 283: function declarator with no prototype
interrupts.h:47: warning 283: function declarator with no prototype
interrupts.h:50: warning 283: function declarator with no prototype
main.c:67: warning 283: function declarator with no prototype
interrupts.h:53: warning 283: function declarator with no prototype
main.c:68: warning 283: function declarator with no prototype
interrupts.h:69: warning 283: function declarator with no prototype
interrupts.h:72: warning 283: function declarator with no prototype
interrupts.h:75: warning 283: function declarator with no prototype
interrupts.h:86: warning 283: function declarator with no prototype
interrupts.h:89: warning 283: function declarator with no prototype
led.c:82: warning 283: function declarator with no prototype
interrupts.h:104: warning 283: function declarator with no prototype
interrupts.h:107: warning 283: function declarator with no prototype
interrupts.h:111: warning 283: function declarator with no prototype
interrupts.h:134: warning 283: function declarator with no prototype
interrupts.h:142: warning 283: function declarator with no prototype
interrupts.h:146: warning 283: function declarator with no prototype
onewire.h:133: warning 283: function declarator with no prototype
onewire.h:135: warning 283: function declarator with no prototype
onewire.h:136: warning 283: function declarator with no prototype
onewire.h:133: warning 283: function declarator with no prototype
onewire.h:138: warning 283: function declarator with no prototype
onewire.h:135: warning 283: function declarator with no prototype
onewire.h:139: warning 283: function declarator with no prototype
onewire.h:136: warning 283: function declarator with no prototype
onewire.h:143: warning 283: function declarator with no prototype
onewire.h:138: warning 283: function declarator with no prototype
onewire.h:145: warning 283: function declarator with no prototype
onewire.h:139: warning 283: function declarator with no prototype
onewire.h:147: warning 283: function declarator with no prototype
interrupts.c:27: warning 283: function declarator with no prototype
onewire.h:143: warning 283: function declarator with no prototype
onewire.h:145: warning 283: function declarator with no prototype
onewire.h:147: warning 283: function declarator with no prototype
onewire.c:42: warning 283: function declarator with no prototype
onewire.c:89: warning 283: function declarator with no prototype
interrupts.c:30: warning 283: function declarator with no prototype
onewire.c:106: warning 158: overflow in implicit constant conversion
interrupts.c:33: warning 283: function declarator with no prototype
main.c:77: warning 283: function declarator with no prototype
interrupts.c:36: warning 283: function declarator with no prototype
interrupts.c:39: warning 283: function declarator with no prototype
interrupts.c:42: warning 283: function declarator with no prototype
interrupts.c:45: warning 283: function declarator with no prototype
interrupts.c:48: warning 283: function declarator with no prototype
interrupts.c:64: warning 283: function declarator with no prototype
onewire.c:117: warning 283: function declarator with no prototype
interrupts.c:67: warning 283: function declarator with no prototype
onewire.c:123: error 20: Undefined identifier 'TIM_EGR_UG'
onewire.c:143: error 20: Undefined identifier 'TIM_EGR_UG'

onewire.c:151: warning 283: function declarator with no prototype
onewire.c:157: error 20: Undefined identifier 'TIM_EGR_UG'
onewire.c:180: warning 283: function declarator with no prototype
led.c:102: warning 283: function declarator with no prototype
onewire.c:229: warning 283: function declarator with no prototype
onewire.c:257: warning 283: function declarator with no prototype
onewire.c:267: warning 283: function declarator with no prototype
onewire.c:276: warning 283: function declarator with no prototype
onewire.c:301: warning 283: function declarator with no prototype
onewire.c:319: warning 283: function declarator with no prototype
make: *** [Makefile:28: onewire.rel] Ошибка 1
make: *** Ожидание завершения заданий…
interrupts.c:75: warning 283: function declarator with no prototype
interrupts.c:86: warning 283: function declarator with no prototype
interrupts.c:90: warning 283: function declarator with no prototype
main.c:86: warning 283: function declarator with no prototype
interrupts.c:133: warning 283: function declarator with no prototype
interrupts.c:136: warning 283: function declarator with no prototype
interrupts.c:140: warning 283: function declarator with no prototype
interrupts.c:163: warning 283: function declarator with no prototype
interrupts.c:172: warning 283: function declarator with no prototype
interrupts.c:176: warning 283: function declarator with no prototype
main.c:102: warning 283: function declarator with no prototype
main.c:113: warning 283: function declarator with no prototype
main.c:122: warning 283: function declarator with no prototype
main.c:134: warning 283: function declarator with no prototype
main.c:137: warning 94: comparison is always true due to limited range of data type
main.c:139: warning 126: unreachable code
main.c:140: warning 126: unreachable code
main.c:141: warning 126: unreachable code
main.c:142: warning 126: unreachable code
main.c:143: warning 126: unreachable code
main.c:145: warning 126: unreachable code
main.c:147: warning 126: unreachable code
main.c:150: warning 283: function declarator with no prototype
main.c:174: warning 158: overflow in implicit constant conversion
led.c:205: warning 94: comparison is always true due to limited range of data type
led.c:246: warning 94: comparison is always true due to limited range of data type
led.c:247: warning 94: comparison is always true due to limited range of data type

sdcc 4.3.0
Аватара пользователя
alexvas2004
Открыл глаза
Сообщения: 47
Зарегистрирован: Пн фев 15, 2010 05:28:51

Re: Программирование STM8

Сообщение alexvas2004 »

Номера портов сопоставил. Впишу их посередине: 10-PA3-17, 1-PD4-15, 2-PD5-1, 13-PC3-18, 11-PB5-19, 18-PD1-14, 15-PC5-10,14-PC4-6, 12-PB4-20, 17-PC7-16, 16-PC6-13, 20-PD3-3.
Теперь во всех файлах, или только определенном, искать упоминание наименования портов и менять (типа как в arduino ide)?
Пробовал установить по примеру из двух частей (https://cxem.net/mc/mc500.php)программы. В итоге примеры оттуда компилируются, а main.c из данного кода получается с ошибками. Два дня мучился безрезультатно.

"JackSmith"

Еще на той странице нашел файл stm8l.h с другим размером . Может в нем дело?
Попробуйте, если возможно.
Вложения
stm8l.7z
(2.81 КБ) 129 скачиваний
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Программирование STM8

Сообщение Martian »

если наименования портов совпали, то ничего менять не требуется.
Ответить

Вернуться в «Разные вопросы по МК»