GenaSPB 11 14 марта, 2017 Опубликовано 14 марта, 2017 (изменено) · Жалоба Оооо! Я тоже на таком же велосипеде езжу! Этажом ниже 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 */ Изменено 14 марта, 2017 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба На русском комментарии делать некультурно, между прочим! Как китайцы читать будут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба На русском комментарии делать некультурно, между прочим! Как китайцы читать будут? Намного культурнее, чем на ломаном английском, от которого англичанина наизнанку вывернет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 14 марта, 2017 Опубликовано 14 марта, 2017 · Жалоба По крайней мере, он хотя бы поймет, о чем речь! Вот я смотрю два кЕтайских исходника. У одного комментарии на кетаглийском, у другого — на китайском. Какой исходник я в /dev/null сразу же отправил? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 14 марта, 2017 Опубликовано 14 марта, 2017 (изменено) · Жалоба Между прочим, на pudn кто-то залил архив моего проекта, переведя readme.txt с русского на китайский. А началось с того, что я не один раз пытался своего друга, который делает гигантские платы на x51 и Atmega с внешней памятью (компилируя с -O0, потому что иначе проект обваливается) на ARM перетащить. И писал для него примеры кода с русскими комментариями... Не удалось, но к русскому привык. readme__32763___35793_.txt readme.txt Изменено 14 марта, 2017 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Velund 0 26 марта, 2017 Опубликовано 26 марта, 2017 · Жалоба И писал для него примеры кода с русскими комментариями... Не удалось, но к русскому привык. Я русские комментарии не признаю в принципе. Щелкать регистром постоянно меня выводит из себя. Так что комментарии английские, англоязычных не выворачивает, некоторые из коллег в свое время путались делать кислое лицо - но проблемы индейцев шерифа не волнуют. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 марта, 2017 Опубликовано 27 марта, 2017 · Жалоба Поделитесь примером с комментариями на английском, который не стыдно показать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Velund 0 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба Поделитесь примером с комментариями на английском, который не стыдно показать. Не знаю, какой в этом смысл, но вот - хватанул с экрана что было в окне редактора... ;) 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 } } } ////////////////////////////////////////////////////////////////////////// Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы? Комментариев мало не бывает ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба Что-то у вас излишне комментариев. Например, зачем комментировать очевидное — паузы? Ну может человеку оплата начисляется на килобайты Такие "комментарии" только ухудшают читаемость проекта. Код должен быть по возможности самокомментируемым, а то что невозможно понять по коду, то только это и должно комментировать. Имха! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба "…зачем комментировать очевидное — паузы?…" А для чего эта пауза? Очевидно? Не думаю… (; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба А для чего эта пауза? Очевидно? Не думаю… (;Согласен. Комментарий есть, но толку от него никакого потому что описывает то, что и так предельно понятно из кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба А для чего эта пауза? Очевидно? Не думаю… (; Во-во. Правильней было бы объяснить, на кой черт она вообще нужна! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 28 марта, 2017 Опубликовано 28 марта, 2017 · Жалоба Например, зачем комментировать очевидное — паузы? У меня такие комментарии частенько бывают. По двум причинам. 1. Частенько лень писать спец. макрос и число в коде не явно описывает реальное время задержки. 2. Как выше в примере - число реальное, а единицы измерений неизвестно какие (мкс, мс, сек ??) А через год нужно подкрутить код - и ищи концы по проекту. А так - комментарий присутствует :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться