Пн апр 01, 2019 20:31:33
если вы сумеете объяснить, куда именно должно быть возвращено значение в микроконтроллере, то я съем свою собственную шляпуDimon456 писал(а):если программа завершилась корректно, то должно быть возвращено значение 1
Пн апр 01, 2019 21:26:03
Вт апр 02, 2019 06:54:32
МЕНЮ
1. ПУНКТ1 - ФУНКЦИЯ1
2. ПУНТК2 - ФУНКЦИЯ2
3. ПУНТК3 - ФУНКЦИЯ3
МЕНЮ
1. ПУНКТ1 - КОД1
2. ПУНТК2 - КОД2
3. ПУНТК3 - КОД3
//обработка меню
char get_menu(menu M);
switch (get_menu(МЕНЮ)){
case КОД1: func1(); break;
case КОД2: func2(); break;
case КОД3: func3(); break;
}
if(edit_int(&T.hour, 24) && edit_int(&T.minute, 60)){
...
}
Вт апр 02, 2019 08:15:29
А я не утверждаю что должно быть что то возвращено.ARV писал(а):если вы сумеете объяснить, куда именно должно быть возвращено значение в микроконтроллере, то я съем свою собственную шляпуDimon456 писал(а):если программа завершилась корректно, то должно быть возвращено значение 1
Анализируя asm-файлDimon456 писал(а):А за чем в конце основного кода
- Код:
return 0;
while (1)
{
Read_DS1307(temp);
938: 89 81 ldd r24, Y+1 ; 0x01
93a: e8 dc rcall .-1584 ; 0x30c <Read_DS1307>
.
.
.
.
//Вызываем функцию мигания секундной точкой
IND_BlinkSecond();
117a: 93 d1 rcall .+806 ; 0x14a2 <IND_BlinkSecond>
}
117c: dd cb rjmp .-2118 ; 0x938 <main+0x1d4>
Вы нам другой протеус дали, возможно и другой проект.melandr писал(а):В протеус в настройках микроконтроллера указан файл прошивки? А то у меня после перезапуска протеус приходится ручками указывать путь к файлу timer.elf
Вт апр 02, 2019 09:49:16
Вт апр 02, 2019 09:54:09
Вт апр 02, 2019 10:38:24
Вт апр 02, 2019 11:01:49
Вт апр 02, 2019 13:15:46
ARV писал(а):индикацию сделал бы, как я делал её всегда: массив байт по числу индикаторов - экранная область. по прерыванию идет вывод этой экранной области на реальные индикаторы.
ARV писал(а):дополнительно к экранной обалсти массив признаков мерцания - если в этом массиве индикатор помечен, то он мерцает. мерцание в том делается в том же прерывании путем пропуска "отмеченного" индикатора втечение определенного количества циклов обновления.
ARV писал(а):таким образом, процесс вывода заключается в обновлении сордержимого экранной области и пометки мигающих позиций, если надо.
ARV писал(а):сделал бы функции вывода "текста" и "времени", которые просто выводили в экранную оласть соответствующие "символы".
ARV писал(а):систему меню сделал бы так. в массиве хранил бы "текст", отображаемый на индикаторе.
ARV писал(а):логика функции навигации по меню заключалась бы в том, что брался бы очередной элемент массива "имен" пунктов, и выводился при помощи той функции, о которой писал ранее, затем ожидался бы ввод кнопки. свитчем по коду кнопки менял бы либо номер пункта меню (индкс массива), либо вызывал бы функцию "редактирования" времени.
ARV писал(а):все время (включая текущее), хранил бы в массиве. поэтому при нажатии Enter номер текущего индекса меню сразу бы соответствовал номеру структуры в массиве времен, что позволло бы его редактировать путем передачи в функцию единственного "индекса".
Вт апр 02, 2019 13:31:54
почему? массив структур тоже хорошо. это не принципиально, имхо. но я бы делал структурами, так понятнее по коду.melandr писал(а):не заморачиваясь со структурой
меню для вот подобных систем с ограниченными возможностями ввода-вывода не так просто сделать хорошо... я обычно всегда жертвую памятью и кодом ради удобства восприятия написанного.melandr писал(а):Вы подразумеваете под системой меню именно логическую последовательность, или просто все используемые надписи к меню. Потому как у меня самих используемых строк 18, но некоторые строки используются по несколько раз в разных разделах меню.
Вт апр 02, 2019 13:43:40
Вт апр 02, 2019 13:46:06
я и написал - чистая вкусовщина. мне не нравится...Starichok51 писал(а):с уродливостью буквы t я не соглашусь - она читается без проблем.
Вт апр 02, 2019 14:36:10
Вт апр 02, 2019 14:53:30
Вт апр 02, 2019 15:24:14
ARV писал(а):логика функции навигации по меню заключалась бы в том, что брался бы очередной элемент массива "имен" пунктов, и выводился при помощи той функции, о которой писал ранее, затем ожидался бы ввод кнопки. свитчем по коду кнопки менял бы либо номер пункта меню (индкс массива), либо вызывал бы функцию "редактирования" времени.
Вт апр 02, 2019 15:27:22
Вт апр 02, 2019 15:33:28
Вт апр 02, 2019 17:24:24
Вт апр 02, 2019 18:30:25
Вт апр 02, 2019 18:41:44
Starichok51 писал(а):светодиодный индикатор, кнопки и периферия не имеют никакого отношения к структуре и реализации меню.
обработка индикатора, кнопок и периферии - это отдельные программные блоки, в которые мы попадаем при выборе соответствующего пункта меню.