А можете мне прислать? Пожалуйста.
Программирование STM8
Re: Программирование STM8
[uquote="isorport",url="/forum/viewtopic.php?p=4091041#p4091041"]кто имел опыт программирования STM8 на ассемблере под IAR?
Я разработал тестовый проект для STM8 на ассемблере под IAR лет 10 назад. С тех пор прошло много времени и я с этими МК дел более не имел и практически всё забыл. Однако, проект остался, если интересно, могу прислать в ЛС. Там, в частности, можно посмотреть как сегменты определены.[/uquote]А можете мне прислать? Пожалуйста.
Re: Программирование STM8
Подскажите, пожалуйста, по микроконтроллеру stm8s001j3. Выбор на него пал из-за 5В и 8 ножек, мне больше не надо в поделке. т.е. меньше места только лучше.
В спецификации к микроконтроллеру написано
т.е. назначить на выход в режиме пуш-пулл эти ножки и назначить низкий уровень.
в другом же документе an5047 приведен пример кода настройки этих ножек, но там настраивают их просто на выход без пуш-пулл (DDR=1) и никакого низкого уровня на них не назначают( ну это ладно возможно он по умолчанию такой). И пишут
Но возникает вопрос: МК имеет порты от A до F по 8 выводов каждый (итого 48), 16 выводов, указанные в спецификации надо настроить, как указано выше, 12 выводов выходят на реальные пины МК, что делать с остальными 20-ю выводами??? Которые не имеют физического выхода на ножки МК, и не надо специфически настраивать по спецификации??
Проблема же у меня следующего плана:
МК при включении настраивает gpio и осциллятор, затем ждет импульс на входе, после отправляет сообщение по специфическому протоколу, ждет 10с и уходит в halt, просыпается так же по прерыванию на входе, и повторяет все заново. Программа все работает, но при сборке устройства и обкатке в реальных условиях, мк стал нагреваться и переставал работать(сообщение не доходило или были искажения, не проверял), постояв какое то время без питания, работал вновь. И греется он ощутимо пальцем, хотя по идее должен быть в халт режиме.
Я вот грешу на неверную настройку ножек, т.к. я все(включая 20 не указанных в спецификации) не используемые выводы настроил на push-pull и назначил в odr на них 0.
Кто сталкивался с этими МК и как настраивал gpio выводы или может сталкивался с такой же проблемой нагрева?
В спецификации к микроконтроллеру написано
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 выводы или может сталкивался с такой же проблемой нагрева?
Re: Программирование STM8
1. 4ygeca, ножки паркуют для уменьшения энергопотребления. если оно вас не волнует, оставьте все по умолчанию.
2. парковать, если делать это, следует все ножки. те что не выведены на корпус все равно есть в кристалле.
3. И греется он ощутимо пальцем коротыш. проверяйте свою схему на КЗ.
2. парковать, если делать это, следует все ножки. те что не выведены на корпус все равно есть в кристалле.
3. И греется он ощутимо пальцем коротыш. проверяйте свою схему на КЗ.
Re: Программирование STM8
4ygeca, или просто бракованный экземпляр МК. У меня есть один STM32, который прекрасно работает, но греется до 60 градусов и потребляет около 200 мА даже в простое. Другой экземпляр там же работает правильно.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: Программирование STM8
JackSmith писал(а):1.ножки паркуют для уменьшения энергопотребления. если оно вас не волнует, оставьте все по умолчанию.
2. парковать, если делать это, следует все ножки. те что не выведены на корпус все равно есть в кристалле.
3. И греется он ощутимо пальцем коротыш. проверяйте свою схему на КЗ.
2. Принял. Спасибо
3. Вот схема, честно ума не дам где в ней может быть КЗ
платки заказывал. Питание берется с промышленной платы, которая нормально работает.
4ygeca, или просто бракованный экземпляр МК. У меня есть один STM32, который прекрасно работает, но греется до 60 градусов и потребляет около 200 мА даже в простое. Другой экземпляр там же работает правильно.
Возможно, смущает тот момент, что я сделал 3 таких штуки, одна давно уехала и исправно работает, но это была самая первая прошивка, плата и схема та же. одна у меня на тестовой сборке, там такая же проблема(как оказалось) и третья, на которой выявилась такая проблема. я конечно, не отрицаю, что из 5 МК, которые я заказал 2 дохлые, но как то сомневаюсь.
Сейчас собираю обратно испытательный "стенд" буду все пробовать. Спасибо
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Программирование STM8
ну так залейте эту прошивку и сравните, будет греться новый камень или нет.4ygeca писал(а):но это была самая первая прошивка,
Re: Программирование STM8
4ygeca, сомневаетесь? А зря - смотря где брали.
Я как-то на Али взял 5 шт. STM32F103C8T6 одним лотом:
- у одного был просто КЗ по питанию;
- у второго чудеса с нагревом, о которых писал выше;
- третий работал чудесно на всех частотах, кроме как на 72 МГц, отчего USB-HID не определялся;
- и только 2 оставшихся нареканий не вызвали.
То есть, тот продавец торговал лютой отбраковкой. И таких там легион.
Я как-то на Али взял 5 шт. STM32F103C8T6 одним лотом:
- у одного был просто КЗ по питанию;
- у второго чудеса с нагревом, о которых писал выше;
- третий работал чудесно на всех частотах, кроме как на 72 МГц, отчего USB-HID не определялся;
- и только 2 оставшихся нареканий не вызвали.
То есть, тот продавец торговал лютой отбраковкой. И таких там легион.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: Программирование STM8
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, все отлично работает.
Код на выходе получается, как если писать константы в регистры, но читаемо и понятно.
Один раз пробежался по всем портам в начале и все быстренько настроилось.
Re: Программирование STM8
Я всё никак не домучаю наручные часы. Попали в руки другие индикаторы и я решил переделать плату под них. Индикаторы как мне показалось АЛС314А. Развёл плату, прошил, собрал, а оно не алё. Светится, но не так как надо. Оказалось индикаторы АЛС304Г. А у них общий анод, а нужно с общим катодом. И чтоб не искать новые индикаторы и не перепаивать, а сформировать их и запаять оказалось той ещё задачей.
Возник вопрос, может кто может подправить скомпилированную (исходников нет) прошивку под индикаторы с общим +.
Re: Программирование STM8
Сирожа, ну ты ещё тот шалун.
Re: Программирование STM8
Проще будет найти АЛС314А. Был бы ты в Москве, я бы тебе их подарил.
Re: Программирование STM8
не, ну в принципе можно... но мне точно лень. Да и решение MMK1 - идеально.
Re: Программирование STM8
Ехать в Москву к ММК1 мне не кажется таким уж идеальным. Проще на вайлдберисе с озоном купить. Даже не несмотря на их конскую цену окажется дешевле.
А если серьёзно, то на наших барахолках нашлось только пару предложений. И то выпаянные. Наверное придётся из чипидипа под заказ попробовать.
Да и мои индикаторы доставшиеся бесплатно, бесполезной горкой лежать будут.
Да и мои индикаторы доставшиеся бесплатно, бесполезной горкой лежать будут.
Re: Программирование STM8
Именно это и имел ввиду - взять те, которые нужны. Поездкой ли в Москву, заказом ли в рынко-месте... Но, раз такая разница по цене и так мало предложений, а я недавно начал писать интерфейс дизассемблера для STM8, то подождите недельку и выложите схему часов, если есть. Не получиться напрямую - напишу Вам другую.
- alexvas2004
- Открыл глаза
- Сообщения: 47
- Зарегистрирован: Пн фев 15, 2010 05:28:51
Re: Программирование STM8
Здравствуйте всем! Кто-нибудь сможет скомпилировать прошивку из кода во вложении, с измененными пинами на индикатор и датчик?
В таком порядке: Пин 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/
В таком порядке: Пин 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 скачиваний
Re: Программирование STM8
Все таблицы массивов переписывать? Это простая, но занудная работа. Почему Вы не сделаете её самостоятельно?
И сопоставьте номерам выводов наименования портов, а то есть подозрение, что если Вы этого не сделали сразу, то и в схеме их от балды взяли, тогда вообще нет смысла что либо делать.
И сопоставьте номерам выводов наименования портов, а то есть подозрение, что если Вы этого не сделали сразу, то и в схеме их от балды взяли, тогда вообще нет смысла что либо делать.
Re: Программирование STM8
Здравствуйте всем! Кто-нибудь сможет скомпилировать прошивку
проект не собирается.
Спойлер
$ makesdcc -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
Номера портов сопоставил. Впишу их посередине: 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 с другим размером . Может в нем дело?
Попробуйте, если возможно.
Теперь во всех файлах, или только определенном, искать упоминание наименования портов и менять (типа как в arduino ide)?
Пробовал установить по примеру из двух частей (https://cxem.net/mc/mc500.php)программы. В итоге примеры оттуда компилируются, а main.c из данного кода получается с ошибками. Два дня мучился безрезультатно.
"JackSmith"
Еще на той странице нашел файл stm8l.h с другим размером . Может в нем дело?
Попробуйте, если возможно.
- Вложения
-
- stm8l.7z
- (2.81 КБ) 129 скачиваний
Re: Программирование STM8
если наименования портов совпали, то ничего менять не требуется.
