Прочитать код с BSOD экрана и забить его в гугл - и, как правило, где-то когда-то кто-то уже терзал коллективный разум аналогичным вопросом.
разумеется. искал. и находил какую-то хрень вроде "вероятно, проблема с банком памяти". после этих слов мне сразу стало легче. точно как в анекдоте: больной перед смертью потел? - да - это хорошо...
Siarzhuk писал(а):
Сервисмены будут в восторге от такого подхода.
ну, если мы говорим об устройстве вроде PLC, то, пожалуй, сервисмены могут быть как-то присовокуплены к теме. но если мы все-таки ограничимся устройствами типа "умный выключатель" или что-то подобное, т.е. без гиперразвитого интерфейса с пользователем, то сервисмены будут совершенно ни при чем. Например, если ваша кофе-машина вдруг перестала заваривать кофе, никакие сервисмены к вам не придут, не позвонят и не станут давать советы, кроме единственного: везите в сервисцентр, разберемся. и эта фраза будет произнесена в ответ на любой код ошибки, который, вероятно, ваша кофемашина вам на дисплее покажет. так что для огромного разнообразия приборов (и тем паче - любительских поделок) ваш метод все же параноидальный.
Siarzhuk писал(а):
ниже маленькая жизненная иллюстрация сходной проблемы.
это иллюстрация другой проблемы... но тема не о ней а теперь давайте подумаем, если бы этот умный выключатель выдал номер ошибки, и даже в интернете нашлось бы описание её - сильно бы это помогло? в случае с BSOD не помогает никак. о всяком случае я не знаю ни одного человека, который бы после BSOD предпринял бы какие-то меры, кроме тупого нажатия на кнопку RESET.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
а как из БСОДа ещё выбраться? а вот когда выбрался - уже можно и меры предпринимать... и, да, этот код помогает: пару раз на сбойный драйвер указывал, часто проблему загрузки через него найти можно: 0x00007b - можно в биос сходить режим SATA поправить, может и скандиск тут помочь... покрайней мере уже знаешь куда копать...
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
так что для огромного разнообразия приборов (и тем паче - любительских поделок) ваш метод все же параноидальный.
Обрабатываться должны все case-ы. Это правильная привычка - и она слишком дорого оплачена. А любитель - тоже человек, и его время для него бесценно. Впрочем наше для нас также, ЕВПОЧЯ.
это иллюстрация другой проблемы... но тема не о ней а теперь давайте подумаем, если бы этот умный выключатель выдал номер ошибки, и даже в интернете нашлось бы описание её - сильно бы это помогло?
Ближе к делу, к чёрту философию - интересны ваши гипотезы как бойлер дошёл до такой жизни. Я же только ради этого сюда и запостил "гишторию" - чтобы мнение более искушённых мастеров услышать и разбавить архетипично-бесперспективную бойню little endians vs big endians. А номер ошибки - за что вы так народ-то недооцениваете? :-D
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
интересны ваши гипотезы как бойлер дошёл до такой жизни
если бойлер умный, то мог просто сойти с ума от тупости пользователя, например. ну или просто. ум - штука тонкая, до конца не изученная... хочешь, чтобы бойлер работал и не сходил с ума - не делай его умным.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Приветь всем! А есть какая-нибудь команда, как вставить в Си файл другой лист целиком на ассемблере? Чтобы не исправлять ассемблерный всякими кавычками... ?
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Пн янв 15, 2018 14:17:51
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:3 Медали: 1
В отдельном файле, надо будет оформлять ассемблерные вставки как функиции. Я сходу не вспомню, часть регистров используется для передачи данных и возврата результа. В R1 всегда ноль должен быть, вроде какие-то есть на свободное пользование. Это для компилятора GCC. Как то делал проект, сейчас открою и погляжу как там функции написаны.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Да, не надо. Все равно все лопатить. Просто я подумал, что ранее писал такую простую и мало-места-занимающую библиотеку под 1602, но на ассемблере. Пытаюсь постигать Си язык теперь. Хотел использовать старую библиотеку, а увы! Мало там возможных регистров для собственного использования. Проще на Си все переписать.
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Пн янв 15, 2018 14:48:19
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
СКАЗОЧНИК писал(а):
Да, не надо.
А я все равно напишу .
СКАЗОЧНИК писал(а):
Мало там возможных регистров для собственного использования.
Никуда они не делись, все Ваши.
Вот как у меня было, например. Созданы дополнительно два файла в проект (то есть их надо не только создать, но и включить в проект). Условно asm.h и asm.S. В заголовочном файле объявлен пототип функции void SetPicMono (color_t color);. Тип этот имеет размер один байт.
Си встретив вызов этой функции, покладет передаваемый параметра в R24R25 (кажется) и выполнит инструкцию call на метку SetPicMono.
Добавлено after 6 minutes 41 second: Собственно заголовочный файл тут совсем не обязателен, прототип функции можно было и прямо в основной исходник вставить.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Как все сложно то... (((( Вот надо мне инициализировать дисплей на Си и буковки на него выводить. А тут.. передаваемый параметр, да еще в паре регистров. Пойду чаю попью (с пельменями).
Добавлено after 6 minutes 2 seconds: А какая команда работы с битами в Си? Ну, типа sbi, cbi
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Пн янв 15, 2018 14:58:53
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Вот еще пример, обработчика прерывания. Тут обработчик прерывания от таймера 1 использует переменную объявленную в где-то в Сишном коде. Тип файла .S. Если бы был .s, то .extern вроде не сработает. Я очень давно этим проектом занимался.
Для обучения. ))) ну и жалко, когда-то написанное на асме не использовать везде. Тем более, там быстрый код, и занимает катастрофически мало места! )) Тем более, делал сам. На Си мне пока что сложно в плане того, что я плохо его помню, за каждой командой приходится лезть и вспоминать.
#define RSport PORTB // Указать порт, к которому подключена линия управления RS #define RSddr DDRB // Указать регистр направления порта, к которому подключена RS #define RSpin 5 // Указать номер бита порта, к которому подключеа линия RS
А вот это надо переделать на СИ
Код:
sbi RSddr, RSpin
Добавлено after 1 minute 50 seconds: LED_DDR = 1<<LED1;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения