Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср июл 09, 2025 22:14:32

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2563 ]     ... , , , 127, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:17:44 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
если наименования портов совпали, то ничего менять не требуется.

Требуется. Неправильно написал. Понятней будет так: Было-надо: PA3-PC7, PD4-PC5, PD5-PD4, PC3-PD1, PB5-PD2, PD1-PC4, PC5-PA3, PC4-PA2, PB4-PD3, PC7-PC6, PC6-PC3, PD3-PD6.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:21:44 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 25
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 249
Рейтинг сообщения: 1
Цитата:
на той странице нашел файл stm8l.h с другим размером

они одинаковые.
В onewire.c вставил
Код:
#define TIM_EGR_UG (1 << 0)

который был в stm8s.h
собрал c помощью sdcc 4.2
Код:
$ 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
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 -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c main.c
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:174: warning 158: overflow in implicit constant conversion
sdcc -DSTM8S003 -I../ -I../../ -I/usr/share/sdcc/include -mstm8 --out-fmt-ihx -c onewire.c
onewire.c:106: warning 158: overflow in implicit constant conversion
sdcc -mstm8 --out-fmt-ihx -lstm8 interrupts.rel led.rel main.rel onewire.rel -o testproj.ihx

$ stm8-size ./testproj.ihx
   text    data     bss     dec     hex filename
      0    3114       0    3114     c2a ./testproj.ihx

все-равно код грязный.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:23:54 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
Может я конечно чего-то не понимаю, но мне кажется что 600р. за один индикатор это многовато.

Жлоб ты Сирожа. Потрудись сам, что бы оценить затраты.
Я имею ввиду декодировку для исправления общий анод - общий катод.


Последний раз редактировалось OKF Чт окт 24, 2024 12:24:33, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:24:28 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
JackSmith писал(а):
все-равно код грязный.
И это практически весь led.c менять. Не, у меня - лапки.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:36:23 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
Интересно как у автора то работало?
https://eddy-em.livejournal.com/80558.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:42:00 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 25
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 249
Рейтинг сообщения: 0
Я имею ввиду декодировку для исправления общий анод - общий катод.

да декодирование, это что. я посмотрел код, bres и bset можно поменять местами, но там в ODR регистр перекидывается значение из аккумулятора. и его надо инвертировать. т.е. вставлять лишнюю инструкцию. это значит что все метки полетят.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:44:28 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Интересно как у автора то работало?
Почему бы не спросить у автора? Здесь его нет, но на других форумах он есть, да и в том же ЖЖ. Надо только сказать волшебную фразу: "Винда - отстой, линукс должны все использовать в принудительном порядке".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:48:45 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
А есть какой нибудь алгоритм в замене? Для человека, не понимающего в языках программирования нет шансов?
Спрашивал. Ответил "А я с STM8 уже много лет не связываюсь".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 12:57:54 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 25
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 249
Рейтинг сообщения: 0
А есть какой нибудь алгоритм в замене? Для человека, не понимающего в языках программирования нет шансов?

прошивка для вольтметра с али на stm8. вольтметров на этих чипах китайцы уже сто лет не продают, где вы их нашли?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 13:19:03 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
А есть какой нибудь алгоритм в замене? Для человека, не понимающего в языках программирования нет шансов?

прошивка для вольтметра с али на stm8. вольтметров на этих чипах китайцы уже сто лет не продают, где вы их нашли?

Это не вольтметр, а термометр на NTC. Был со сгоревшей STM. Заказывал на али пару штук микросхем несколько лет назад.
Позавчера попались на глаза. Заменил, прошил при помощи ардуино иде блинк. Заработало. А дальше оказалась засада(.
Попробую еще с помощью FLProg (человек создавал для W1209) сделать прошивку.
Кстати для интереса прошил без изменений прошивку автора кода. Индикатор подмигивает некоторыми символами. Видимо программа работает.
Так что если ничего не получится, выпаяю индикатор и на проводках с коммутирую как надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 24, 2024 15:33:53 
Прорезались зубы
Аватар пользователя

Карма: 13
Рейтинг сообщений: 65
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Сообщений: 200
Откуда: Беларусь
Рейтинг сообщения: 0
Жлоб ты Сирожа. Потрудись сам, что бы оценить затраты.

Я конечно извиняюсь за уровень наглости моей просьбы. Но мне чтобы потрудится самому, нужно освоить программирование с ноля. А это не быстро. Поэтому слабо представляю этот процесс. Мне и вправду казалось, что людям не по наслышке знакомым с программированием не так сложно это сделать. Возможно есть какие-то специальные инструменты для этого. Только откуда мне это знать.
Я ж никого не принуждаю. Есть желание и возможность помочь, помогли. Нет, так нет. Я всё прекрасно понимаю, что не все хотят тратить своё время на безвозмездной основе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт окт 25, 2024 20:13:15 
Говорящий с текстолитом

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1500
Рейтинг сообщения: 5
если наименования портов совпали, то ничего менять не требуется.

Требуется. Неправильно написал. Понятней будет так: Было-надо: PA3-PC7, PD4-PC5, PD5-PD4, PC3-PD1, PB5-PD2, PD1-PC4, PC5-PA3, PC4-PA2, PB4-PD3, PC7-PC6, PC6-PC3, PD3-PD6.
В led.c редактировать (для перназначения ног) нужно только этот маленький участок:
Код:
/************* arrays for ports *************/
// PA, mask: 0x02, PA1
static U8 PA_bits[18] = {0,2,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,0};
#define PA_BLANK 0x02
// PB, mask: 0x30, PB4:0x10=16, PB5:0x20=32
#define PB_BLANK 0x30
static U8 PB_bits[18] = {0,32,0,0,32,16,16,0,0,0,0,48,16,32,16,16,48,48};
// PC, mask: 0xF8, PC3:0x08=8, PC4:0x10=16, PC5:0x20=32, PC6:0x40=64, PC7:0x80=128
#define PC_BLANK 0xF8
static U8 PC_bits[18] = {40,232,48,160,224,160,32,232,32,160,96,32,56,32,48,112,240,96};

/**
 * Setup for writing a letter
 * @param ltr - letter (0..17 for 0..F, - or h | 0x80 for DP, any other value for 'space')
 */
void write_letter(U8 ltr){
  U8 L = ltr & 0x7f;
  PD_ODR = 0; // turn off digits 1..3
  if(L < 18){ // letter
    PA_ODR = PA_bits[L];
    PB_ODR = PB_bits[L];
    PC_ODR = PC_bits[L];
  }else{ // space
    PA_ODR = PA_BLANK;
    PB_ODR = PB_BLANK;
    PC_ODR = PC_BLANK;
  }
  if(ltr & 0x80){ // DP
    PC_ODR ^= 0x20;
  }
}

/**
 * Turn on anode power for digit N (0..3: PA3, PD6, PD4, PD1 -- A0x08, D0x40, D0x10, D0x02)
 * @param N - number of digit (0..3), if other - no action (display off)
 * @return
 */
void light_up_digit(U8 N){
  switch(N){
    case 0:
      PA_ODR |= 0x08;
    break;
    case 1:
      PD_ODR |= 0x40;
    break;
    case 2:
      PD_ODR |= 0x10;
    break;
    case 3:
      PD_ODR |= 0x02;
    break;
  }
}

Другое дело, что данные порты/пины где-то ещё могут использоваться. Как минимум - они где-то настраиваются изначально. Это тоже нужно искать.

PS: Стиль исходника конечно говнокодерский: Порты/пины прибиты гвоздями в коде. :facepalm:
В нормально написанном исходнике они должны быть вынесены в дефайны. И тогда назначение ног меняется только в одном месте, а не по всему коду лазить-править.
Впрочем - качественно писать исходники - это же не кричать "винда - мастдай, линух - рулёз". Здесь голова нужна....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб окт 26, 2024 04:32:04 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
В led.c редактировать (для перназначения ног) нужно только этот маленький участок:

Спасибо, но ваш пример кода из другого проекта (под названием led) и немного другой. Или при применении 3х значного индикатора они все взаимозаменяемые (led.c)из разных проектов?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб окт 26, 2024 05:46:28 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Дак ктож знает? я тоже этот файл смотрел, по Вашей же ссылке...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб окт 26, 2024 08:17:21 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
Дак ктож знает? я тоже этот файл смотрел, по Вашей же ссылке...

По ссылке там несколько проектов. А во вложении был один, который нужен. Вот он отдельно:


Вложения:
led.c [7.55 KiB]
Скачиваний: 670
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб окт 26, 2024 10:02:28 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Ну, практически тоже самое.
Там в самом начале нарисована цифра сегментная и таблица ей соответствующая. Так вот в Вашем случае надо не просто изменить некоторые биты в этой таблице, а внести новые ряды, так как Вы часть новых портов внесли. А часть наоборот, вынесли, и это тоже надо учитывать.
В общем, вмешательство достаточно большое.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб окт 26, 2024 10:36:36 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн фев 15, 2010 05:28:51
Сообщений: 38
Рейтинг сообщения: 0
Там в самом начале нарисована цифра сегментная и таблица ей соответствующая. Так вот в Вашем случае надо не просто изменить некоторые биты в этой таблице, а внести новые ряды, так как Вы часть новых портов внесли. А часть наоборот, вынесли, и это тоже надо учитывать.

В таблице поменял. Ниже, где упоминаются номера портов в явном виде, тоже. Но что то никаких изменений не получил.
И ещё просьба: не могли бы Вы скомпилировать hex или ihx из исходных файлов, выложенных мной ранее? Чтобы сравнить с файлом автора, находящимся с теми файлами.
А то как то странно: при прошивке с помощью stvp файла ihx автора в устройстве подмигивают одни символы, а при компиляции и прошивке с помощью Microsoft VS Code исходников из той же папки, горят другие символы.
И ещё вопрос: в Microsoft VS Code во вкладке "выходные данные" сообщение "Не удалось разрешить конфигурацию с compilerPath: "C:/Users/Comp/.platformio/packages/toolchain-sdcc/bin/sdcc.exe"" является ошибкой или это норма?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 31, 2024 23:31:21 
Прорезались зубы
Аватар пользователя

Карма: 13
Рейтинг сообщений: 65
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Сообщений: 200
Откуда: Беларусь
Рейтинг сообщения: 0
Это опять я. :)
Можете помочь код для ардуино уно скомпилировать в .хекс для загрузки в атмегу 328.

Спойлер
Код:
/*
 Demo Code for HDSP 2111 using SN74LS595N
 Matt Joyce < matt@nycresistor.com >
 Mark Tabry
 */
 
//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 12;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;
const int ce = 5;
const int wr = 6;
const int a2 = 4;
const int a1 = 3;
const int a0 = 2;
const int rst = 10;
const int a3 = 9;
int incomingByte = 0;
 
void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT); 
  pinMode(clockPin, OUTPUT);
  pinMode(a0, OUTPUT);
  pinMode(a1, OUTPUT);
  pinMode(a2, OUTPUT);
  pinMode(a3, OUTPUT);
  pinMode(rst, OUTPUT);
  pinMode(ce, OUTPUT);
  pinMode(wr, OUTPUT);
  digitalWrite(ce, HIGH);
  digitalWrite(wr, HIGH);
 
  resetDisplay();
}
 
void resetDisplay() {
  digitalWrite(rst, LOW);
  delayMicroseconds(1);
  digitalWrite(rst,HIGH);
  delayMicroseconds(150);
  digitalWrite(a3, HIGH);

 
void writeDisplay(char *input) {
//  Serial.println(input);
  for (int i=0; i<8; i++) {   
    digitalWrite(a0, (1&i)!=0?HIGH:LOW);
    digitalWrite(a1, (2&i)!=0?HIGH:LOW);
    digitalWrite(a2, (4&i)!=0?HIGH:LOW);
       
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, MSBFIRST, input[i] );
    digitalWrite(latchPin, HIGH);
    delay(1);   
    digitalWrite(ce, LOW);
    delay(1);
    digitalWrite(wr, LOW);
    delay(1);
    digitalWrite(wr, HIGH);
    delay(1);
    digitalWrite(ce, HIGH);
    delay(1);
  }
}
 
void scrollDisplay(char *words) {
  char buffer[9];
  int i = 0;
  while(words[i] != 0){
    boolean blank = false;
    for (int j = 0; j<8; j++) {
      if ( !blank && words[i+j] == 0 ) {
        blank = true;
      }
     
      if ( blank ) {
        buffer[j] = ' ';
      }
      else {
        buffer[j] = words[i+j];
      }
    }
    buffer[8]=0;
    writeDisplay(buffer);
    delay(200);
    i++;
 }
 
}
 
void loop() {
    char intro[] = "        Test ";
    scrollDisplay(intro);
    delay(2000);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт окт 31, 2024 23:52:57 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Раздел называется "Программирование STM8". Подумайте, попадает ли под это "код для ардуино уно скомпилировать в .хекс для загрузки в атмегу 328.".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт ноя 01, 2024 02:33:46 
Прорезались зубы
Аватар пользователя

Карма: 13
Рейтинг сообщений: 65
Зарегистрирован: Пт ноя 16, 2012 20:17:41
Сообщений: 200
Откуда: Беларусь
Рейтинг сообщения: 0
Извиняюсь. Не доглядел. Как раз таки на название раздела и посмотрел. А как эта тема называется забыл.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2563 ]     ... , , , 127, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y