-
Content Count
5119 -
Joined
-
Last visited
-
Days Won
3
Alex last won the day on December 3 2017
Alex had the most liked content!
Community Reputation
611 Очень хорошийAbout Alex
-
Rank
Убиватель МК
- Birthday 01/01/1981
Контакты
-
ICQ
461500721
Информация
-
Пол
Мужчина
-
Интересы
Микроконтроллеры, программирование.
-
Город
Планета Земля
Электроника
-
Стаж в электронике
10-20 лет
-
Сфера радиоэлектроники
Микроконтроллеры
-
Оборудование
Нет у меня ничего, я нищий...
Recent Profile Visitors
197783 profile views
-
Alex started following Диапазон входных напряжений АЦП STM32, stm32f103c8 ровный ШИМ, Установка бита в зависимости от значения переменной and and 4 others
-
https://www.radiokot.ru/forum/viewtopic.php?f=59&t=175669 Думаю, эта тема уже не актуальна
-
Установка бита в зависимости от значения переменной
Alex replied to number_nine's topic in МК для начинающих
Не нужен он. 1<<0 = 1 ....... ....... 1<<7 = 128 -
Скажу так. В фри-версии, код искуственно раздувается компилятором. Причём, раздувается не слабо. Разница между Free и Pro - ощутима.
-
Это о каком алгоритме речь ? Если вычитать и проверять на <0, то FF будет считаться уже переполнением.
-
А вот такой вариант : signed char x = 50; void fun(){ static signed char a=0xff; if((a-=x)<0) open_triac(); } уже имеет более красивую картинку : PS: А это Ваш вариант функции error :
-
Естественно. АСМ - язык конкретного железа. А Си - язык высокого уровня, который не может захватить все существующие процессоры и их команды. По этому, у него нет оператора "сложить с пропуском по переполнению" Как вариант, на вскидку : unsigned char x; { static unsigned char a=0xff; if(a<x) open_triac(); a-=x; } XC8 : 10: void fun(){ 7F4 3032 MOVLW 0x32 11: static unsigned char a=0xff; 7FC 30FF MOVLW 0xff 12: 13: if(a<x) open_triac(); 7F5 0270 SUBWF fun@a, W 7F6 1803 BTFSC STATUS, 0 7F7 2FF9 GOTO 0x7f9 7F8 27EF CALL open_triac 14: a-=x; 7F9 3032 MOVLW 0x32 7FA 02F0 SUBWF fun@a, F 15: 16: 17: } 7FB 0008 RETURN Неоптимально, конечно. Хоть и PRO-версия.
-
@Splav , если Вы пишите под PIC, и Вам очень хочется сделать этот алгоритм быстрый, с однобайтовыми переменными, то просто вставьте кусок АСМ-кода. Тогда вся конструкция выльется всего в несколько команд - сложение с проверкой бита переполнения (пропуск следующей команды, которая открывает триак). Остаток, как Вы его называете, будет сам оставаться в переменной, после переполнения.
-
Отладка - неотъемлемая часть написания программ. Прогоните отладчиком и посмотрите, что передаётся в LCD_SendACharcter. Возможно, компилятор пихает строку куда-нибудь не туда, в какую-нибудь не ту область памяти.
-
Про отладку что-нибудь слышали ? Подобное на раз-два вылавливается.
-
Всем, чем попадётся ) А ели выбесит - могу и молотком убить Не весь исходник выложили
-
А не проще выложить исходник ? Чтобы любой сам смог подправить под себя.
-
Диапазон входных напряжений АЦП определяется питанием МК. Смещайте своё напряжение до положительного диапазона и делите его. Простейшая задача для школьника по электронике.
-
В чём тогда у Вас проблема ? Всё доступно, всё имеется, всё на руках, ... Берём и делаем.