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

Bill

Участник
  • Постов

    413
  • Зарегистрирован

  • Посещение

Весь контент Bill


  1. Проблемы с STM8

    У меня стоят танталовые чип. Емкость пробовал ставить и 2.2, и 1.0. Разницы никакой нет.
  2. Проблемы с STM8

    В общем, дело такое. Прошил свою программу в STM8S Discovery. Все работает нормально. Так что, похоже, все упирается в STM8S103K6 (в Discovery стоит STM8S105C6). Или нет?
  3. А оно нужно, второе образование? Я думаю, одного высшего образования вполне достаточно. Просто берете книги по нужным вам разделам и самобразовываетесь. Или нет?
  4. Проблемы с STM8

    Нет, других МК пока нет. Жду когда появится STM8S Discovery в "Промэлектроника".
  5. Проблемы с STM8

    Попробовал как у вас. Никаких изменений. Уже не знаю что и делать.
  6. Проблемы с STM8

    В партии еще осталось 8 штук. Что-то не хочется их все запаивать. А какой контроллер у вас? Может свой код выложите?
  7. Проблемы с STM8

    Делал я на Си. Попробовал IAR. Разницы абсолютно никакой нет.
  8. Проблемы с STM8

    Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой. Если говорить насчет частоты, то6 во-первых PORTD все-таки работает; во-вторых, изначально я пробовал запускать программу с внутренним генератором (16МГц / 8) и результат был тот же самый. Инкрементирование порта ни чем не отличается от инкрементирования любой другой ячейки памяти (в PIC, кстати сказать, сделано аналогично). Я пробовал по-разному изменять программу. Например, инкрементировал аккумулятор и результат пересылал в порт, инкрементировал один порт (неработающий) и результат пересылал в другой (работающий) порт. Абсолютно нет никакой разницы. Ни один порт толком не заработал. В общем, пришел к выводу, что дело скорее всего не в программе, а именно в "железе". Правда, единственное в чем я отошел от рекомендаций фирмы, это величина емкости внешнего конденсатора. Фирма рекомендует значения 0.47 - 1.0 мкф. У меня стоит конденсатор номиналом 2.2 мкф. Есть призрачная надежда, что с заменой конденсатора все встанет на свои места. Но ...
  9. Проблемы с STM8

    Нет проблем switch .text ; ; ** InitPorts -- функция инициализайии портов В/В ; InitPorts: ld a, #0FFh ; Initiate ports ld PB_DDR, a ; ld PB_CR1, a ; ld PD_DDR, a ; ld PD_CR1, a ; ld PD_CR2, a ; ; ld a, #LED_MASK ; Установить порт управления LED драйвером на вывод ; ld LED_DDR, a ; ; ld LED_CR1, a ; включить push-pull режим ; clr LED_PORT ; Сбросить порт ret ; ; ***** main - головная функция ***** ; _main: ldw x, #RAM_END ; Инициализировать стек ldw sp, x ; bset SWEN ; Switch clock to HSE mov CLK_SWR, #0xB4 ; callr InitPorts ; Инициализировать порты 1$: ;;; Бесконечный цикл ; btjf TIM_05, 2$ ; Проверить флаг события и переход, если не установлен ; bres TIM_05 ; Сбросить флаг ; callr Bin2BCD ; Преобразовать новое значение счетчикак для вывода ;2$: ; callr LEDout ; Вывод значения счетчика на индикатор inc PB_ODR ; Use ports a a binary counter inc PD_ODR ; ; bcpl PB_ODR, #1 ; bcpl PD_ODR, #1 ; bcpl PD_ODR, #6 ; bres PD_ODR, #0 jra 1$;;;
  10. Проблемы с STM8

    Только что попробовал другой контроллер, результат тот же самый. :(
  11. Проблемы с STM8

    Я проверял программу с использованием фабричных установок (частота внутреннего генератора / 8 = 2МГц). Разницы абсолютно никакой. И потом, у порта D не работает самый старший разряд, а все остальные, за исключением самого младшего, работают. Пробовал управлять скоростью нарастания на выходе порта при помощи регистра CR2, разница в длительности фронтов заметна, но работоспособности никак не сказывается. Что касается Watchdog таймера, то он у меня отключен. Даже если бы он был включен, то при правильной работе сигналы на выходах портов все равно были бы видны, разница между периодом Watchdog таймера и цикла программы составляет несколько порядков.
  12. Проблемы с STM8

    Ну, так оба порта хотел попробовать. Один не получился, сконфигурировал второй. Правда, контроллер у меня другой - STM8S103K.
  13. Проблемы с STM8

    Это все в "железе" работает?
  14. Проблемы с STM8

    Нет светодиод не мигает. Я пока все осциллографом смотрю. А код... вот он ; ; ** InitPorts -- функция инициализации портов В/В ; InitPorts: ld a, #0FFh ; Initiate ports ld PB_DDR, a ; ld PB_CR1, a ; ld PD_DDR, a ; ld PD_CR1, a ; ld PD_CR2, a ; ; ld a, #LED_MASK ; Установить порт управления LED драйвером на вывод ; ld LED_DDR, a ; ; ld LED_CR1, a ; включить push-pull режим ; clr LED_PORT ; Сбросить порт ret ; ; ***** main - головная функция ***** ; _main: ldw x, #RAM_END ; Инициализировать стек ldw sp, x ; bset SWEN ; Switch clock to HSE mov CLK_SWR, #0xB4 ; callr InitPorts ; Инициализировать порты 1$: ;;; Бесконечный цикл ; btjf TIM_05, 2$ ; Проверить флаг события и переход, если не установлен ; bres TIM_05 ; Сбросить флаг ; callr Bin2BCD ; Преобразовать новое значение счетчикак для вывода ;2$: ; callr LEDout ; Вывод значения счетчика на индикатор ; inc PB_ODR ; Use ports a a binary counter inc PD_ODR ; bcpl PB_ODR, #1 bcpl PD_ODR, #1 bcpl PD_ODR, #6 bres PD_ODR, #0 jra 1$;;;
  15. Проблемы с STM8

    И так тоже делал, разницы нет.
  16. Проблемы с STM8

    Проблема состоит в конфигурации портов В/В. Имею контроллер STM8S103K. Для начала решил попробовать использовать порт как обычный счетчик и посмотреть на нем сигналы. Для этого выбрал PORTB. Сконфигуриловал его как порт вывода. В бесконечном цикле наращиваю счетчик на 1 1$: inc PB_ODR jra 1$ Смотрю сигналы на выводах порта. А сигналов там вовсе и нет. На паре выводов низкий уровень (true open drain), на остальных - высокий. Попробовал использовать другой порт - PORTC. Абсолютно все то же самое. Взял третий - PORTD. Вроде и работает, но не совсем. На разрядах 0, 7 высокий уровень, на остальных как и положено - меандр. Попробовал чуть усложнить код 1$: inc PB_ODR mov PD_ODR, PB_ODR jra 1$ Абсолютно ничего не изменилось. На разрядах порта B постоянные уровни, на разрядах 1-6 порта D - меандр. Вот и ломаю голову - что я сделал не так? Смотрел фирменные библиотеки, каких-то особых хитростей по конфигурации портов не увидел. Можно предположить, что я при пайке спалил выходы портов. Но это маловероятно. На всякий случай решил собрать еще одну платку с контроллером и посмотреть что будет. PS: А контроллер мне нравится все больше и больше. Вот только бы заставить его работать нормально. :rolleyes:
  17. IAR STM8

    Понятно, про проблемы - в другом форуме.
  18. IAR STM8

    Я пробовал чуток с "железом" поиграться. Есть кое-какие проблемы. Но по производительности STM8 ни чуть не хуже AVR. Большинство команд так же выполняется за 1 такт, плюс инструкции обработки 16-разрядных данных... и т.д. PS: Использую STVD + ассемблер от Cosmic.
  19. Calling conventions

    Там два варианта функций - для IAR и GCC. Какой вариант вы используете?
  20. STM8

    Делается так же, как и для AVR.
  21. Calling conventions

    Не должно быть там никаких "багов". Просто эти процедуры не рассчитаны для совместной работы с IAR. И вообще, CSTACK это программно реализованный стек данных, который используется только в IAR.
  22. STM8

    Все трансляторы с ассемблера различаются прежде всего своим синтаксисом. Поэтому программа, написанная для одного ассемблера, скорее всего не сможет быть оттранслирована другим. А в общем, дело не только в одном ассемблере, но и во всей системе в целом. На данный момент для меня более удобной оказалась среда Cosmic в оболочке STDV. Хм .... Если бы только 3 операции, то это еще куда ни шло. При декременте и сравнении их получается 5, и это вместо одной. :)
  23. STM8

    Спасибо!!! Будем ждать. Хотя я на сегодняшний день остановился на комплексе SVDT-Cosmic. Поскольку я пишу программы на ассемблере, то ассемблер у Cosmic мне понравился больше остальных.
  24. STM8

    Да уж... ;) Сильно улучшает... if (!--Len) вообще можно реализовать одной инструкцией dec S:b8 jrne ??b3 ..... Или нет? PS: Видно первая версия еще очень сырая.
×
×
  • Создать...