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