Skip to content

Commit

Permalink
editing the README.md file
Browse files Browse the repository at this point in the history
  • Loading branch information
nf-zvv committed Mar 16, 2020
1 parent 3f702b0 commit 4b0e177
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

## Firmware

Программное обеспечение для микроконтроллера ATmega16 написано на языке Assembler в среде AVR Studio v.4.19.

### Description

Алгоритм работы микроконтроллера при автоматическом снятии ВАХ следующий: путем установки цифрового кода ЦАП задается начальное сопротивление перехода сток-исток транзистора, при этом изменяются ток и напряжение солнечного модуля в соответствии с его ВАХ. Напряжение и ток измеряются датчиками, сигналы оцифровываются с помощью АЦП и передаются в микроконтроллер, который выполняет вычисления и передает измеренные ток и напряжение на компьютер через преобразователь интерфейсов UART-USB. Затем значение ЦАП увеличивается на заданный шаг и процесс повторяется, пока не будет достигнуто конечное значение ЦАП.
Expand Down Expand Up @@ -57,16 +59,19 @@

По UART доступен командный интерпретатор. По мере поступления, входящие символы добавляются в кольцевой буфер UART по прерыванию `UART Receive Complete`. При получении символа перевода каретки (CR, код 13, `\n`), возводится флаг о приёме строки. Далее управление передаётся парсеру `UART_RX_PARSE`. Запускается подпрограмма `SPLIT_LINE`, которая подготавливает командную строку в виде `команда\0[аргументы]\0`: из кольцевого буфера последовательно извлекаются символы, после первой последовательности символов (команды), отделённой пробелом, следуют опциональные аргументы, индексы начала которых добавляются в отдельный массив. Затем запускается подпрограмма `DEFINE_CMD`, которая идентифицирует команду и в случае успеха возвращает `CMD_ID` - идентификатор команды. Если ошибок не обнаружено, управление передаётся обработчику команды при помощи подпрограммы `EXEC_CMD`.

##### Список доступных команд
**Список доступных команд**

1. `clear` - очистка экрана;
2. `reboot` - перезагрузка устройства;
3. `echo` - эхо, возвращает в терминал значение своего аргумента;
4. `set` - изменение значения переменной (имеет два аргумента: имя переменной и новое значение);
5. `get` - считывание значения переменной (при отправке без аргумента, либо при аргументе `ALL`, выводит список "имя=значение" переменных; при указании конкретного имени переменной выводит значение этой переменной);
6. `start` - запуск процедуры автоматического снятия ВАХ (отправляет в терминал массив измеренных и обработанных данных).

Разделителем служит пробел.

1. `clear` - очистка экрана
2. `reboot` - перезагрузка устройства
3. `echo` - эхо, возвращает в терминал значение своего аргумента
4. `set` - изменение значения переменной (имеет два аргумента: имя переменной и новое значение)
5. `get` - считывание значения переменной (при отправке без аргумента, либо при аргументе `ALL`, выводит список "имя=значение" переменных; при указании конкретного имени переменной выводит значение этой переменной)
6. `start` - запуск процедуры автоматического снятия ВАХ (отправляет в терминал массив измеренных и обработанных данных)
**Имена переменных**

Имена переменных:
- `DAC_STEP` - текущий шаг регулировки ЦАП;
- `IVC_DAC_START` - начальное значение ЦАП при автоматическом снятии ВАХ;
- `IVC_DAC_END` - конечное значение ЦАП при автоматическом снятии ВАХ;
Expand All @@ -75,7 +80,7 @@
- `ADC_V_REF` - калибровочное значение: опорное напряжение АЦП [мВ];
- `ACS712_KI` - калибровочное значение: коэффициент передачи датчика тока ACS712 [мВ/А].

##### Список сообщений об ошибках
**Список сообщений об ошибках**

1. `Split arguments failed` - ошибка разбивки строки на аргуметы;
2. `Unknown command` - неизвестная команда;
Expand Down

0 comments on commit 4b0e177

Please sign in to comment.