Комментарии 13
Жесть, до чего докатились!
Представляю себе, как выглядит автогенерированный код. Поди-ка поправь в нем что-нибудь…
Представляю себе, как выглядит автогенерированный код. Поди-ка поправь в нем что-нибудь…
-1
А вы не представляйте, вы посмотрите.
Там разграничены области, которые обновляются конфигуратором, и области для user code. Всё что между знаков $ перезаписывается автоматически.
громоздко разве что
Там разграничены области, которые обновляются конфигуратором, и области для user code. Всё что между знаков $ перезаписывается автоматически.
Часть функции инициализации АЦП
extern void ADC_0_enter_DefaultMode_from_RESET(void) {
// $[ADC0MX - ADC0 Multiplexer Selection]
/*
// ADC0MX (AMUX0 Positive Input Selection) = ADC0P6 (Select channel
// ADC0.6.)
*/
ADC0MX = ADC0MX_ADC0MX__ADC0P6;
// [ADC0MX - ADC0 Multiplexer Selection]$
// $[ADC0CF - ADC0 Configuration]
/*
// AD8BE (8-Bit Mode Enable) = 8_BIT (ADC0 operates in 8-bit mode.)
// ADGN (Gain Control) = GAIN_1 (The on-chip PGA gain is 1.)
// ADSC (SAR Clock Divider) = 0x19
// ADTM (Track Mode) = TRACK_NORMAL (Normal Track Mode. When ADC0 is
// enabled, conversion begins immediately following the start-of-
// conversion signal.)
*/
ADC0CF = ADC0CF_AD8BE__8_BIT | ADC0CF_ADGN__GAIN_1 | (0x19 << ADC0CF_ADSC__SHIFT)
| ADC0CF_ADTM__TRACK_NORMAL;
// [ADC0CF - ADC0 Configuration]$
// $[ADC0TK - ADC0 Burst Mode Track Time]
// [ADC0TK - ADC0 Burst Mode Track Time]$
// $[ADC0PWR - ADC0 Power Control]
// [ADC0PWR - ADC0 Power Control]$
...
громоздко разве что
+2
Каждый раз, когда я вижу подобное разделение, у меня в голове голос робота говорит: «Че-ло-век, пи-ши код сю-да».
+3
Кстати, пользоваться автогенератором можно хотя бы для того, чтобы создавать примерчики, не выуживая последовательности, регистры и сдвиги из даташита, прыгая от страницы к страницы по получасу.
+4
Т.е. всё же это продвинутый графический инициализатор, который сейчас во многих платформах есть, или реально визуальный ЯП, типа «algorithm builder» или «дракон»?
0
Это инициализатор кристалла, ничего революционного, но весьма удобно. Позволю себе самоцитату:
Т.е. речь о автоматизации создания «статичных» режимов работы, а не полноценных алгоритмов.
Многие микроконтроллерные платформы поддерживают инструменты для создания начальной конфиграции периферийных устройств и портов ввода/вывода. Обычно это ...
Т.е. речь о автоматизации создания «статичных» режимов работы, а не полноценных алгоритмов.
+2
Ясно, меня смутило слово «программироваине».
Вот кстати, если кому интересно, подобный инициализатор для PIC-ов:
puu.sh/iKfw6/3f3185d837.png
Вот кстати, если кому интересно, подобный инициализатор для PIC-ов:
puu.sh/iKfw6/3f3185d837.png
0
НЛО прилетело и опубликовало эту надпись здесь
Порог вхождения в программирование микроконтроллеров надо снижать и статьи подобные этой дают надежду неподготовленному читателю. Увы, без теоретических знаний добиться понимания будет сложно, использование автогенератора может только усложнить задачу для тех, кто хочет заниматься данным вопросом всерьез.
0
Ну это же не Arduinoвские analogRead(), а интерфейс, позволяющий вместо поиска в datasheet регистров Timer 2 Reload High и Low Byte набрать в поле Timer Overflow 1000 мс и, главное, получить
Я бы вообще не говорила что конфигуратор — инструмент, предназначенный для новичков. Это инструмент, помогающий специалистам любого класса упросить ту часть работы, которую упрощать можно и нужно. Это как использовать Ctrl-F вместо пролистывания 500-страничного pdf.
// $[TMR2RLH - Timer 2 Reload High Byte]
/*
// TMR2RLH (Timer 2 Reload High Byte) = 0xFF
*/
TMR2RLH = (0xFF << TMR2RLH_TMR2RLH__SHIFT);
// [TMR2RLH - Timer 2 Reload High Byte]$
// $[TMR2RLL - Timer 2 Reload Low Byte]
/*
// TMR2RLL (Timer 2 Reload Low Byte) = 0x30
*/
TMR2RLL = (0x30 << TMR2RLL_TMR2RLL__SHIFT);
// [TMR2RLL - Timer 2 Reload Low Byte]$
Я бы вообще не говорила что конфигуратор — инструмент, предназначенный для новичков. Это инструмент, помогающий специалистам любого класса упросить ту часть работы, которую упрощать можно и нужно. Это как использовать Ctrl-F вместо пролистывания 500-страничного pdf.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
«Программирование мышкой» для микроконтроллеров