← All posts tagged программазм

stanislavv
лытдыбр программазм радиогубительство В свзязи с погоревшим usb-uart (не работает tx), задумался на тему запрограммить свой переходник. Не знаю, зачем оно мне надо при наличии в 10 минутах ходьбы магазина, где сиё лежит, но хочется. Надо будет закупиться мелкими контроллерами, пока есть возможность и потренироваться на них.
stanislavv
лытдыбр программазм Обнаружил, что в той паре типа ардуин, что предполагал отдать детям на растерзание, кривой бутлоадер, который не видится avrdude. Заодно узнаю, что за программатор там в примерах прилагается, одна штука натуральной ардуины есть и даже работала.
А вообще — надо попробовать сей программатор на stm32 соорудить практики ради... Надо только пару типа ардуиновых платок прикупить, чтоб было над чем издеваться.
stanislavv
лытдыбр программазм радиогубительство Похоже, отпуск и его предчувствие на меня плохо влияют.
Закомметировал softspi, раскомментировал инициализацию железного spi, запустил тест — всё как надо на осциллографе
Что было — хз.
Правда, экран как не работал, так и не работает :-)
stanislavv
лытдыбр программазм радиогубительство Посмотрел осциллографом на свой softspi (реализована только передача на скорости tim4/3 и, похоже, можно подумать на тему tim4/2).
Пока есть следующие выводы про softspi:
1) Осциллограмма соответствует мануалу, что совершенно неожиданно неожиданно для меня, так как ранее подобных извращений не писал.
2) Пропусков тактов нет — это не успевают подаваться байты в процедуру, а не глюк логики.
3) Надо паять нормальные провода, а не эти недоразъёмы на штырьках.
stanislavv
лытдыбр программазм радиогубительство Паять не дают, мыслей по поводу аппаратного spi нет — делаю софтварный, на прерывании таймера. Делает вид, что работает, если верить осциллографу. Интересно, то, что длительность тактов там иногда удваивается — сильно помешает или нет?
stanislavv
лытдыбр программазм Одно из двух: либо я как-то не так инициализирую выводы, что на A5 постоянный вывод частоты около 900кГц, а на A7 вообще ничего, либо я что-то недоперепаял, либо что-то сдохло.
Думаю, надо взять второй экземпляр и припаять туда не линейку штырьков, а отдельные провода и таки проверить последние две гипотезы, так как что там можно не так проинициализировать стандартными средствами — хз и вообще, надо дать отдых мозгам и нагрузку рукам. Завтра дам. Может быть, во время работы даже, ибо последний день перед отпуском и новых задач не ожидается :-)
stanislavv
лытдыбр программазм При работе с SPI возникает прерывание, которое у меня не перехватывается. Непонятно, какое.
Похоже, придётся понаписать обработчиков на все случаи жизни с выхлопом в дебаг и подключить их всех. Отлаживать в gdb посылку 18+кб данных до срабатывания прерывания мне не хочется и писать свой отладчик тоже.
stanislavv
лытдыбр программазм Перед отпуском работой не грузят — коротких задач нет.
Спёр драйвер для st7789 и перепиливаю его с hal и keil под libopencm3 и gcc с правкой стиля (типа проверки uint < 0 и т.п.). Компилируется, но пока хз, работает ли — процедуру записи блока в spi пришлось писать заново, в libopencm3 её нет.
stanislavv
лытдыбр программазм Пока на работе конференция юниксоидов (ничего судьбоносного) — прибрался в коде, сделал комменты для doxygen для бОльшей части фукнций и переменных с дефайнами.
Осталось понять, какого хрена идёт ругать от gcc на конверсию типов, если типы везде одни и те же не только внутри той функции, но и там, где она вызывается:
strings_local.h:113:13: warning: conversion to 'int16_t {aka short int}' from 'int' may alter its value [-Wconversion]
n = -n; / make n positive /
stanislavv
лытдыбр программазм Допилил шелл на мелкоконтроллере, теперь есть аж три команды — hello, led_on, led_off.
Для первой команды даже есть тесты. Остальные — железные, так что тут хз, как тестить автоматикой без железки.
Похоже, с шеллом всё — не придумывается, что ещё тут можно сделать хотя бы относительно полезного.