реклама на сайте
подробности

 
 
26 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Библиотеки для STM32
Genadi Zawidowsk...
сообщение Mar 14 2017, 16:32
Сообщение #46


Профессионал
*****

Группа: Участник
Сообщений: 1 469
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Оооо! Я тоже на таком же велосипеде езжу!
Этажом ниже ATMega, ATXMega (кроме USB), Renesas RZ/A1L, AT91SAM9S, ATSAM3/4S, STM32Fxxxx

Код
// +++ dsp
// Интерфейс к НЧ кодеку
void hardware_audiocodec_enable(void);        // Интерфейс к НЧ кодеку
void hardware_audiocodec_initialize(void);    // Интерфейс к НЧ кодеку

// Интерфейс к ПЧ кодеку или FPGA
void hardware_fpgacodec_enable(void);        // Интерфейс к ВЧ кодеку
void hardware_fpgacodec_initialize(void);    // Интерфейс к ВЧ кодеку
void hardware_fpgaspectrum_enable(void);    // Интерфейс к источнику данных о спектре
void hardware_fpgaspectrum_initialize(void);    // Интерфейс к источнику данных о спектре

void hardware_dac_initialize(void);        /* инициализация DAC на STM32F4xx */
void hardware_dac_ch1_setvalue(uint_fast16_t v);    // вывод 12-битного значения на ЦАП - канал 1
void hardware_dac_ch2_setvalue(uint_fast16_t v);    // вывод 12-битного значения на ЦАП - канал 2


void hardware_spi_io_delay(void);

void cat2_parsechar(uint_fast8_t c);                /* вызывается из обработчика прерываний */
void cat2_rxoverflow(void);                            /* вызывается из обработчика прерываний */
void cat2_disconnect(void);                            /* вызывается из обработчика прерываний произошёл разрыв связи при работе по USB CDC */
void cat2_sendchar(void * ctx);                            /* вызывается из обработчика прерываний */

// Функции тестирования работы компорта по прерываниям
void cat3_parsechar(uint_fast8_t c);                /* вызывается из обработчика прерываний */
void cat3_rxoverflow(void);                            /* вызывается из обработчика прерываний */
void cat3_disconnect(void);                            /* вызывается из обработчика прерываний */
void cat3_sendchar(void * ctx);                            /* вызывается из обработчика прерываний */

void modem_parsechar(uint_fast8_t c);                /* вызывается из обработчика прерываний */
void modem_rxoverflow(void);                        /* вызывается из обработчика прерываний */
void modem_disconnect(void);                        /* вызывается из обработчика прерываний */
void modem_sendchar(void * ctx);                            /* вызывается из обработчика прерываний */

void nmea_parsechar(uint_fast8_t c);                /* вызывается из обработчика прерываний */
void nmea_rxoverflow(void);                            /* вызывается из обработчика прерываний */
void nmea_sendchar(void * ctx);                            /* вызывается из обработчика прерываний */

void hardware_uart1_initialize(void);
void hardware_uart1_set_speed(uint_fast32_t baudrate);
void hardware_uart1_tx(void * ctx, uint_fast8_t c);    /* передача символа после прерывания о готовности передатчика */
void hardware_uart1_enabletx(uint_fast8_t state);    /* вызывается из обработчика прерываний */
void hardware_uart1_enablerx(uint_fast8_t state);    /* вызывается из обработчика прерываний */
uint_fast8_t hardware_usart1_putchar(uint_fast8_t c);/* передача символа если готов порт */
uint_fast8_t hardware_usart1_getchar(char * cp); /* приём символа, если готов порт */

void hardware_uart2_initialize(void);
void hardware_uart2_set_speed(uint_fast32_t baudrate);
void hardware_uart2_tx(void * ctx, uint_fast8_t c);    /* передача символа после прерывания о готовности передатчика */
void hardware_uart2_enabletx(uint_fast8_t state);    /* вызывается из обработчика прерываний */
void hardware_uart2_enablerx(uint_fast8_t state);    /* вызывается из обработчика прерываний */
uint_fast8_t hardware_usart2_putchar(uint_fast8_t c);/* передача символа если готов порт */
uint_fast8_t hardware_usart2_getchar(char * cp); /* приём символа, если готов порт */

void usbd_cdc_tx(void * ctx, uint_fast8_t c);            /* передача символа после прерывания о готовности передатчика - вызывается из HARDWARE_CDC_ONTXCHAR */
void usbd_cdc_enabletx(uint_fast8_t state);    /* вызывается из обработчика прерываний */
void usbd_cdc_enablerx(uint_fast8_t state);    /* вызывается из обработчика прерываний */

/* отладочная выдача через USB CDC */
void debugusb_initialize(void);                /* Вызывается из user-mode программы при запрещённых прерываниях. */
uint_fast8_t debugusb_putchar(uint_fast8_t c);/* передача символа если готов порт */
uint_fast8_t debugusb_getchar(char * cp); /* приём символа, если готов порт */
void debugusb_parsechar(uint_fast8_t c);    /* вызывается из обработчика прерываний */
void debugusb_sendchar(void * ctx);            /* вызывается из обработчика прерываний */



И далее в том же духе:
Код
uint_fast8_t board_getadc_filtered_u8(uint_fast8_t i, uint_fast8_t lower, uint_fast8_t upper);    /* получить значение от АЦП в диапазоне lower..upper (включая границы) */
uint_fast16_t board_getadc_filtered_u16(uint_fast8_t i, uint_fast16_t lower, uint_fast16_t upper);    /* получить значение от АЦП в диапазоне lower..upper (включая границы) */
uint_fast8_t board_getadc_smoothed_u8(uint_fast8_t i, uint_fast8_t lower, uint_fast8_t upper);    /* при изменении отфильтрованного значения этого АЦП возвращаемое значение на каждом вызове приближается к нему на 1 */
uint_fast8_t board_getadc_unfiltered_u8(uint_fast8_t i, uint_fast8_t lower, uint_fast8_t upper);    /* получить значение от АЦП в диапазоне lower..upper (включая границы) */
uint_fast16_t board_getadc_unfiltered_u16(uint_fast8_t i, uint_fast16_t lower, uint_fast16_t upper);    /* получить значение от АЦП в диапазоне lower..upper (включая границы) */
uint_fast32_t board_getadc_unfiltered_u32(uint_fast8_t i, uint_fast32_t lower, uint_fast32_t upper);    /* получить значение от АЦП в диапазоне 0..255 */
adcvalholder_t board_getadc_filtered_truevalue(uint_fast8_t i);    /* получить значение от АЦП */
adcvalholder_t board_getadc_unfiltered_truevalue(uint_fast8_t i);    /* получить значение от АЦП */
adcvalholder_t board_getadc_fsval(void);    /* получить максимальное значение значение от АЦП */
void hardware_set_adc_filter(uint_fast8_t i, uint_fast8_t v);    /* установить способ фильтрации данных (в момент выборки их регистра АЦП */

void hardware_set_adc_filterLPF(uint_fast8_t i, uint_fast8_t k);    /* Установить способ фильтрации LPF и частоту среза - параметр 1.0..0.0, умноженное на HARDWARE_ADCFILTER_LPF_DENOM */
#define HARDWARE_ADCFILTER_LPF_DENOM    128        /* положение фиксированной точки при фильтрации HARDWARE_ADCFILTER_LPF */


Сообщение отредактировал Genadi Zawidowski - Mar 14 2017, 22:40
Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 14 2017, 17:48
Сообщение #47


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



На русском комментарии делать некультурно, между прочим! Как китайцы читать будут?


--------------------
Я: на гитхабе, на stackexchange, в ЖЖшке
--------------------------------
In the world, only two things are the worst: Windows and Poettering.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 14 2017, 17:59
Сообщение #48


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 7 328
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Эдди @ Mar 14 2017, 20:48) *
На русском комментарии делать некультурно, между прочим! Как китайцы читать будут?

Намного культурнее, чем на ломаном английском, от которого англичанина наизнанку вывернет.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 14 2017, 20:42
Сообщение #49


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



По крайней мере, он хотя бы поймет, о чем речь!
Вот я смотрю два кЕтайских исходника. У одного комментарии на кетаглийском, у другого — на китайском. Какой исходник я в /dev/null сразу же отправил?


--------------------
Я: на гитхабе, на stackexchange, в ЖЖшке
--------------------------------
In the world, only two things are the worst: Windows and Poettering.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Mar 14 2017, 22:28
Сообщение #50


Профессионал
*****

Группа: Участник
Сообщений: 1 469
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Между прочим, на pudn кто-то залил архив моего проекта, переведя readme.txt с русского на китайский.
А началось с того, что я не один раз пытался своего друга, который делает гигантские платы на x51 и Atmega с внешней памятью (компилируя с -O0, потому что иначе проект обваливается) на ARM перетащить. И писал для него примеры кода с русскими комментариями... Не удалось, но к русскому привык.

Сообщение отредактировал Genadi Zawidowski - Mar 14 2017, 22:43
Прикрепленные файлы
Прикрепленный файл  readme__32763___35793_.txt ( 2.11 килобайт ) Кол-во скачиваний: 40
Прикрепленный файл  readme.txt ( 1.47 килобайт ) Кол-во скачиваний: 37
 
Go to the top of the page
 
+Quote Post
Velund
сообщение Mar 26 2017, 23:43
Сообщение #51


Знающий
****

Группа: Свой
Сообщений: 671
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (Genadi Zawidowski @ Mar 15 2017, 01:28) *
И писал для него примеры кода с русскими комментариями... Не удалось, но к русскому привык.


Я русские комментарии не признаю в принципе. Щелкать регистром постоянно меня выводит из себя. Так что комментарии английские, англоязычных не выворачивает, некоторые из коллег в свое время путались делать кислое лицо - но проблемы индейцев шерифа не волнуют. wink.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 27 2017, 04:11
Сообщение #52


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 7 328
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Поделитесь примером с комментариями на английском, который не стыдно показать.
Go to the top of the page
 
+Quote Post
Velund
сообщение Mar 28 2017, 00:43
Сообщение #53


Знающий
****

Группа: Свой
Сообщений: 671
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (ViKo @ Mar 27 2017, 07:11) *
Поделитесь примером с комментариями на английском, который не стыдно показать.


Не знаю, какой в этом смысл, но вот - хватанул с экрана что было в окне редактора... wink.gif

CODE
  for (;;)         // Task, that caused error, will loop here forever
   {
#ifndef DEBUG
       if (!(SysFlags & SYSF_OSStarted)) VdHitWd(wd);
#endif

     UpdLEDs ();
         t2 = _SET_TIMEOUT(100);         // 100 ms delay
         while (!(_CHK_TIMEOUT(t2))) {}

         if (_CHK_TIMEOUT(t))            // Check if timeout expired
          {
            SysFlags |= SYSF_ResetReq;   // Set restart request flag
            t = _SET_TIMEOUT(3000);      // Allow 3 sec for graceful termination of other tasks
            while (!(_CHK_TIMEOUT(t))) {}
            GSMPower(0);                 // Turn modem off
            if (GenCnf.dat.DSLflags & DSMF_Enable)
            {
              Slv_SleepCmd (SLAVE_ADDR, 3600, 0x01, &err);
              t = _SET_TIMEOUT(3000);    // Delay 3 sec
              while (!(_CHK_TIMEOUT(t))) {}  // (actually, power will be shut down during this delay)
              // If we pass here, something went really wrong. Reboot anyway.  
              reboot();                   // Reset unit, if wasn't done already by other task
            }              
            else
              reboot();                   // Reset unit, if wasn't done already by other task
          }
    }

}

//////////////////////////////////////////////////////////////////////////

Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 28 2017, 05:00
Сообщение #54


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы?


--------------------
Я: на гитхабе, на stackexchange, в ЖЖшке
--------------------------------
In the world, only two things are the worst: Windows and Poettering.
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Mar 28 2017, 07:05
Сообщение #55


Знающий
****

Группа: Участник
Сообщений: 600
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(Эдди @ Mar 28 2017, 08:00) *
Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы?

Комментариев мало не бывает wink.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 28 2017, 07:22
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 3 205
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Эдди @ Mar 28 2017, 07:00) *
Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы?

Ну может человеку оплата начисляется на килобайты biggrin.gif
Такие "комментарии" только ухудшают читаемость проекта. Код должен быть по возможности самокомментируемым, а то что невозможно понять по коду, то только это и должно комментировать. Имха!
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 28 2017, 07:44
Сообщение #57


Знающий
****

Группа: Участник
Сообщений: 532
Регистрация: 14-11-14
Пользователь №: 83 663



"…зачем комментировать очевидное — паузы?…"

А для чего эта пауза? Очевидно? Не думаю… (;


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 28 2017, 08:07
Сообщение #58


Гуру
******

Группа: Модераторы
Сообщений: 7 881
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Obam @ Mar 28 2017, 09:44) *
А для чего эта пауза? Очевидно? Не думаю… (;
Согласен. Комментарий есть, но толку от него никакого потому что описывает то, что и так предельно понятно из кода.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 28 2017, 10:05
Сообщение #59


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Obam @ Mar 28 2017, 10:44) *
А для чего эта пауза? Очевидно? Не думаю… (;

Во-во. Правильней было бы объяснить, на кой черт она вообще нужна!


--------------------
Я: на гитхабе, на stackexchange, в ЖЖшке
--------------------------------
In the world, only two things are the worst: Windows and Poettering.
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 28 2017, 10:14
Сообщение #60


Просто Che
*****

Группа: Свой
Сообщений: 1 198
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Эдди @ Mar 28 2017, 08:00) *
Например, зачем комментировать очевидное — паузы?

У меня такие комментарии частенько бывают. По двум причинам.
1. Частенько лень писать спец. макрос и число в коде не явно описывает реальное время задержки.
2. Как выше в примере - число реальное, а единицы измерений неизвестно какие (мкс, мс, сек ??)
А через год нужно подкрутить код - и ищи концы по проекту. А так - комментарий присутствует sm.gif
Go to the top of the page
 
+Quote Post

26 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th April 2017 - 16:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01637 секунд с 7
ELECTRONIX ©2004-2016