Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485864#p4485864"]может я где-то пропустил твой АСМ, но если честно, то я его не видел :)[/uquote]
"Мой ASM" в приведенном коде не требуется. Ты просил не "мой ASM", а дизасм моего Си кода, чтобы продемонстрировать преимущество ASM вставок против чистого Cи.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4482575#p4482575"]я тебе предлагаю показать СВОЙ СИ код, и потом его дизассемблировать[/uquote]
Вот и демонстрируй. :music:
Что тебе не понравилось в работе компилятора в приведенном листинге дизасма? :tea:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485864#p4485864"]А что?[/uquote]
Смотрим внимательно твой код. :tea:

Код: Выделить всё

volatile uint16_t resADC = 555;

 movlw 0x2B
 movwf resADC
 movlw 0x2
 movwf 0x48
Из чего следует, что компилятор поместил resADC по адресам 0x47 и 0x48.
Далее следует:

Код: Выделить всё

resADC=(uint16_t)(ADRESL+ADRESH<<8);

 bsf STATUS, RP0
 movf ADRESH, W   ; читаем в W старший байт АЦП
 bcf STATUS, RP0
 addwf ADRESL, W   ; суммируем с W младший байт АЦП
 movwf 0x45   ; выгружаем сумму в адрес 0x45
 clrf 0x46    ;  очищаем содержимое по адресу 0x46
 rlf 0x46, F  ;  сдвигаем по кольцу влево на один бит это содержимое
 movwf 0x48   ; выгружаем результат в старший байт resADC
 clrf resADC  ; очищаем младший байт resADC
Более идиотский код даже трудно себе представить... Результат всегда равен НУЛЮ. :music:

ЗЫ. Как быстро и нативно загрузить в Си результат АЦП в пару регистров 16-битной переменной я знаю. Только в этом коде скорость такого рода вообще не нужна. Читается код - этого достаточно. :tea:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4485872#p4485872"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485864#p4485864"]может я где-то пропустил твой АСМ, но если честно, то я его не видел :)[/uquote]
"Мой ASM" в приведенном коде не требуется. Ты просил не "мой ASM", а дизасм моего Си кода, чтобы продемонстрировать преимущество ASM вставок против чистого Cи.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4482575#p4482575"]я тебе предлагаю показать СВОЙ СИ код, и потом его дизассемблировать[/uquote]
Вот и демонстрируй. :music:
Что тебе не понравилось в работе компилятора в приведенном листинге дизасма? :tea:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485864#p4485864"]А что?[/uquote]
Смотрим внимательно твой код. :tea:

Код: Выделить всё

volatile uint16_t resADC = 555;

 movlw 0x2B
 movwf resADC
 movlw 0x2
 movwf 0x48
Из чего следует, что компилятор поместил resADC по адресам 0x47 и 0x48.
Далее следует:

Код: Выделить всё

resADC=(uint16_t)(ADRESL+ADRESH<<8);

 bsf STATUS, RP0
 movf ADRESH, W   ; читаем в W старший байт АЦП
 bcf STATUS, RP0
 addwf ADRESL, W   ; суммируем с W младший байт АЦП
 movwf 0x45   ; выгружаем сумму в адрес 0x45
 clrf 0x46    ;  очищаем содержимое по адресу 0x46
 rlf 0x46, F  ;  сдвигаем по кольцу влево на один бит это содержимое
 movwf 0x48   ; выгружаем результат в старший байт resADC
 clrf resADC  ; очищаем младший байт resADC
Более идиотский код даже трудно себе представить... Результат всегда равен НУЛЮ. :music:

ЗЫ. Как быстро и нативно загрузить в Си результат АЦП в пару регистров 16-битной переменной я знаю. Только в этом коде скорость такого рода вообще не нужна. Читается код - этого достаточно. :tea:[/uquote]


А ты не путай ПИСЮ с пальцем :)
Если хочешь результат в ХСхх, то нужно не просто значение (константу) ввести, а нужно - чтобы те файлы работали :)
Я могу перевести любой свой ХСхх в режим "1" - ДЕМО, 30 процентов моего кода (прошивок) не влезет в проц, а то что влезет - будет КРУТО ТОРМОЗИТЬ ! (для пик 12/16/18) :)

Так что ты хочешь ? Ехать или шашечки ?

?? А ты сомневаешься в том, что МОЙ код не те данные выдаст :)?

Так а кто-ж тебе мешает проверить :)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485914#p4485914"]Если хочешь результат в ХСхх, то нужно не просто значение (константу) ввести, а нужно - чтобы те файлы работали :)[/uquote]
У меня работают, а у тебя нет. Ты это чуть выше продемонстрировал.
Кстати, у меня дизасм выше анализируемого присвоения resADC значения АЦП выглядит так (я ранее приводил, но ты не умеешь раскрывать спойлер):

Код: Выделить всё

209:               resADC=(uint16_t)ADRESL+((uint16_t)ADRESH<<8);
5862  0103     MOVLB 0x3
5864  51EB     MOVF DMAnDCNTH, W, BANKED
5866  6E4B     MOVWF HLVDCON1, ACCESS
5868  51EA     MOVF DMAnDCNT, W, BANKED
586A  0105     MOVLB 0x5
586C  6FD1     MOVWF 0xD1, BANKED
586E  C54B     MOVFF 0x54B, 0x5D2
5870  F5D2     NOP
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485914#p4485914"]Я могу перевести любой свой ХСхх в режим "1" - ДЕМО, 30 процентов моего кода (прошивок) не влезет в проц, а то что влезет - будет КРУТО ТОРМОЗИТЬ ! (для пик 12/16/18) :)[/uquote]
Поток сознания. Комментировать нечего.
Если у тебя не влазит прошивка - пиши на чистом АСМе или смени чип.
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4485921#p4485921"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485914#p4485914"]Если хочешь результат в ХСхх, то нужно не просто значение (константу) ввести, а нужно - чтобы те файлы работали :)[/uquote]
У меня работают, а у тебя нет. Ты это чуть выше продемонстрировал.
Кстати, у меня дизасм выше анализируемого присвоения resADC значения АЦП выглядит так (я ранее приводил, но ты не умеешь раскрывать спойлер): - ВОТ меня прикалывают дебилы, которые в бессознанке - чужие комменты правят как свои :) ЧТО? мама писю не давала пососать в детстве ? :)

Код: Выделить всё

209:               resADC=(uint16_t)ADRESL+((uint16_t)ADRESH<<8);
5862  0103     MOVLB 0x3
5864  51EB     MOVF DMAnDCNTH, W, BANKED
5866  6E4B     MOVWF HLVDCON1, ACCESS
5868  51EA     MOVF DMAnDCNT, W, BANKED
586A  0105     MOVLB 0x5
586C  6FD1     MOVWF 0xD1, BANKED
586E  C54B     MOVFF 0x54B, 0x5D2
5870  F5D2     NOP
Кстати, судя по твоему коду:
586E C54B MOVFF 0x54B, 0x5D2
ты работаешь на пик18, а разговор то был -> идёт про пик16 :) Что? Опять "дурочка повисла, и не даёт думать" :)
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485926#p4485926"]ты работаешь на пик18, а разговор то был -> идёт про пик16[/uquote]
Разговор идет про ЛЮБОЙ восьмиразрядный ПИК. Патамушта тут обсуждается Си код, которому по барабану какой контроллер.
Я, например, месяц назад перевел изделие, в котором используется приведенный мною код, на AT32F421. Изменились только драйверы периферии. Остальной код я просто скопипастил в новый проект. На всё про всё ушло три рабочих дня.
А все потому, что код переносим и не использует всякую заточенную под платформу хрень.
Что касается PIC10...PIC16, то для них код на Си писать практически бессмысленно. Поэтому для них я пишу на чистом АСМе.
Получается компактно и быстро. И не требует ломанного XC8.
Но всё это не имеет значения против той лютой пурги, которую ты тут несешь. С тобой обсуждать что либо серьезное не имеет смысла. Ты тотально безграмотен.
А еще есть ощущение, что и тотально туп. Патамушта не в состоянии осилить движок форума в части тегов кода.
Зачем то цитируешь полную портянку предыдущего сообщения, вместо того, чтобы вырезать и фрагментировать текст по существу своих сообщений.
Вот и предыдущий свой эпистолок переврал по полной...
Реклама
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4485931#p4485931"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485926#p4485926"]ты работаешь на пик18, а разговор то был -> идёт про пик16[/uquote]
Разговор идет про ЛЮБОЙ восьмиразрядный ПИК. Патамушта тут обсуждается Си код, которому по барабану какой контроллер.
Я, например, месяц назад перевел изделие, в котором используется приведенный мною код, на AT32F421. Изменились только драйверы периферии. Остальной код я просто скопипастил в новый проект. На всё про всё ушло три рабочих дня.
А все потому, что код переносим и не использует всякую заточенную под платформу хрень.
Что касается PIC10...PIC16, то для них код на Си писать практически бессмысленно. Поэтому для них я пишу на чистом АСМе.
Получается компактно и быстро. И не требует ломанного XC8.[/uquote]

А вот тут ты ошибаешься, "патамушта" пик16 даже рядом не стоял с пик18 :)
А если прыгнуть ещё выше, то понимаешь - что это совсем не пик18 :)
А если ещё выше ... то отстой, типа стм32 - вообще - не имеет не своей нормальной оболочки для разработки, не имеет ВМЕМЯЕМЫХ даташитов, да и вообще - на него прыгают люди -
у которых просто нет денег на нормальный проц :)

Но это так ... показалось :) Я не собираюсь очередную войну развязывать по поводу - какой проц круче :)

/*
Разговор идет про ЛЮБОЙ восьмиразрядный ПИК. Патамушта тут обсуждается Си код, которому по барабану какой контроллер.
Я, например, месяц назад перевел изделие, в котором используется приведенный мною код, на AT32F421. Изменились только драйверы периферии. Остальной код я просто скопипастил в новый проект. На всё про всё ушло три рабочих дня.
А все потому, что код переносим и не использует всякую заточенную под платформу хрень.
*/

Да ну!!!! ? Правда?
Т.е, таймеры, осциллятор, ШИМ - - одинаковый?
А ты просто перенёс проект ?
Знаешь, ты тут конечно на форуме можешь пиздунца влево-вправо/по кругу погонять, но мне-то не пиз*ди :)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А вот тут ты ошибаешься, "патамушта" пик16 даже рядом не стоял с пик18[/uquote]
Вообще то у них идентичное ядро. В PIC18 немного расширена система команд. Не виже никакой принципиальной разницы.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А если прыгнуть ещё выше, то понимаешь - что это совсем не пик18[/uquote]
Ты там какую траву куришь? Куда прыгнуть? :facepalm:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А если ещё выше ... то отстой, типа стм32 - вообще - не имеет не своей нормальной оболочки для разработки, не имеет ВМЕМЯЕМЫХ даташитов, да и вообще - на него прыгают люди -
у которых просто нет денег на нормальный проц[/uquote]
Ты реально идиот.
Среди STM32 есть чипы с ценой в пару десятков баксов в опте.
"Оболочек для разработки" любых ARM-ов вагон и маленькая тележка. Я, например, работаю в Keil. Меня все устраивает. А более всего устраивает то, что при переходе с STM32 на AT32 мне вообще не пришлось ничего менять. Та же среда разработки, только немного другой комплект файлов периферии.
По поводу даташитов STM32. А ты в курсе, что документация на STM32 состоит из ТРЕХ документов? Даташит, рефмануал и эррата. Так же точно, как и у PIC24/dsPIC33, PIC32.
Но я практически уверен, что ты просто не в состоянии осилить большие объемы англоязычной документации, поэтому жалуешься на нее. :tea:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]Да ну!!!! ? Правда?
Т.е, таймеры, осциллятор, ШИМ - - одинаковый?
А ты просто перенёс проект ?[/uquote]
А ты в курсе что такое "драйверы периферии"? :)))
Драйверы периферии - это прослойка кода, которая делает НЕЗАВИСИМЫМ основной код от периферии.
В этом случае переписать нужно только те самые таймеры-ШИМы-УАРТы и т.п., а обработка данных не изменяется вообще.
Но для этого код должен быть правильно структурирован и не содержать всякой лютой пурги, которую ты тут нам демонстрируешь.
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4485943#p4485943"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А вот тут ты ошибаешься, "патамушта" пик16 даже рядом не стоял с пик18[/uquote]
Вообще то у них идентичное ядро. В PIC18 немного расширена система команд. Не виже никакой принципиальной разницы.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А если прыгнуть ещё выше, то понимаешь - что это совсем не пик18[/uquote]
Ты там какую траву куришь? Куда прыгнуть? :facepalm:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485935#p4485935"]А если ещё выше ... то отстой, типа стм32 - вообще - не имеет не своей нормальной оболочки для разработки, не имеет ВМЕМЯЕМЫХ даташитов, да и вообще - на него прыгают люди -
у которых просто нет денег на нормальный проц[/uquote]
Ты реально идиот.
Среди STM32 есть чипы с ценой в пару десятков баксов в опте.
"Оболочек для разработки" любых ARM-ов вагон и маленькая тележка. Я, например, работаю в Keil. Меня все устраивает. А более всего устраивает то, что при переходе с STM32 на AT32 мне вообще не пришлось ничего менять. Та же среда разработки, только немного другой комплект файлов периферии.
По поводу даташитов STM32. А ты в курсе, что документация на STM32 состоит из ТРЕХ документов? Даташит, рефмануал и эррата. Так же точно, как и у PIC24/dsPIC33, PIC32.
Но я практически уверен, что ты просто не в состоянии осилить большие объемы англоязычной документации, поэтому жалуешься на нее. :tea:[/uquote]

Аааа . . я понял, это у меня практически пожизненная гарантия, а у тебя как трусы у бабы - недельки :)

Одно, да не одно ЯДРО :)
У первых нет прямого доступа к памяти (с чего и начался этот разговор), второе ядро уже полноценное в плане доступа к FLASH.

А выше прыгнуть - это пик24/dsPIC33 - там камни, что твой стм нервно курит в сторонке :)
А вообще - много у тебя проектов на стм?
Я просто интересуюсь, никаких войн :) И на сколько ДОЛГО они работают? Не те, что дома тикают как часики :) А те, которые потом просто в мусор, и меняешь на пики ?
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485949#p4485949"]Одно, да не одно ЯДРО :)
У первых нет прямого доступа к памяти (с чего и начался этот разговор), второе ядро уже полноценное в плане доступа к FLASH.[/uquote]
Может стоит применять не самые древние ПИКи?
1. DMA не относится к ядру. Это периферийный контроллер управления шиной памяти.
2. Доступ к флешу тоже не относится к ядру.
3. Ядро - это АЛУ и сверхоперативная память. АЛУ у PIC18 и PIC16 практически идентично. Открой даташиты в разделе CPU и сам сравни.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485949#p4485949"]А выше прыгнуть - это пик24/dsPIC33 - там камни, что твой стм нервно курит в сторонке :)
А вообще - много у тебя проектов на стм?[/uquote]
1. У меня проектов СЕРИЙНЫХ изделий на СТМ32 - три штуки. Зато проектов на AT32 - восемь.
2. Проектов на dsPIC33 примерно полсотни (точно считать лень), на PIC24 - примерно пару десятков, на PIC18 - десятка три.
3. На PIC10...PIC16 я затруднюсь сказать. Наверное тоже около полусотни.
И все это только серийные изделия, либо малосерийные для технологических нужд производства и сервисного обслуживания серийных изделий в эксплуатации. Для дома у меня почти нет времени что либо делать. Года три назад переделал сыну бьюти-холодильник на Пельтье. Там работает PIC16F1614.
Сейчас переделываю проект HF RFID ридера с ATmega165 на AT32F421. Но только что начал. Прежде всего требуется переписать код на АСМе для ATmega165 в удобоваримый вид, чтобы его скормить MPLABX без ошибок. А то автор кода писал его в AVR studio с кучей варнингов. Мне удобнее работать с PICkit4 и потому атмеловская студия мне неудобна.
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4485953#p4485953"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485949#p4485949"]Одно, да не одно ЯДРО :)
У первых нет прямого доступа к памяти (с чего и начался этот разговор), второе ядро уже полноценное в плане доступа к FLASH.[/uquote]
Может стоит применять не самые древние ПИКи?
1. DMA не относится к ядру. Это периферийный контроллер управления шиной памяти.
2. Доступ к флешу тоже не относится к ядру.
3. Ядро - это АЛУ и сверхоперативная память. АЛУ у PIC18 и PIC16 практически идентично. Открой даташиты в разделе CPU и сам сравни.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4485949#p4485949"]А выше прыгнуть - это пик24/dsPIC33 - там камни, что твой стм нервно курит в сторонке :)
А вообще - много у тебя проектов на стм?[/uquote]
1. У меня проектов СЕРИЙНЫХ изделий на СТМ32 - три штуки. Зато проектов на AT32 - восемь.
2. Проектов на dsPIC33 примерно полсотни (точно считать лень), на PIC24 - примерно пару десятков, на PIC18 - десятка три.
3. На PIC10...PIC16 я затруднюсь сказать. Наверное тоже около полусотни.
И все это только серийные изделия, либо малосерийные для технологических нужд производства и сервисного обслуживания серийных изделий в эксплуатации. Для дома у меня почти нет времени что либо делать. Года три назад переделал сыну бьюти-холодильник на Пельтье. Там работает PIC16F1614.
Сейчас переделываю проект HF RFID ридера с ATmega165 на AT32F421. Но только что начал. Прежде всего требуется переписать код на АСМе для ATmega165 в удобоваримый вид, чтобы его скормить MPLABX без ошибок. А то автор кода писал его в AVR studio с кучей варнингов. Мне удобнее работать с PICkit4 и потому атмеловская студия мне неудобна.[/uquote]

Написал много и красиво :)
Особенно понравилось про Пельтье :)
Звучит красиво, выглядит как обычный нвагреватель :) Ну разве что четыре транзистора, и один ШИМ :)
Можно пик12 использовать, но у БМВ - аж целый техас инструментс пинов на 140 - может больше :)
А работает - через ЖО.. ну короче - ОЧЕНЬ херово (в седалищах и спинках кресел ) :)
По поводу:
resADC=(uint16_t)ADRESL+((uint16_t)ADRESH<<8);
https://disk.yandex.ru/d/LyHl-w0dXYWwQg Извините, не тот архив первоначально кинул....

я трохи пиздунца заправил (забыл поставить скобки, признаю), но зато по поводу разницы между пик16 и 18 - могу честно заявить - хоть компилятор и один (хс8),
но работает по разному :)
И пик18 точно выходит на заявленные 16 МИПС, пик16 на свои 5 МИПС не выходит.
А кто не верит, пусть в майне ногодрыг устроит.
Я правда пик16 никогда и не разгонял, пик18 разгонял до 25 МИПС, остальные пики (выше) ВСЕГДА разгоняю - чтобы знать - что могут :)
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486273#p4486273"]я трохи пиздунца заправил (забыл поставить скобки, признаю)[/uquote]
Со скобками тоже фуфло. Старший байт равен нулю. :tea: :))) Собственно и разбирать АСМ не требуется. На Си написано фуфло. Компилятор просто его отработал. Учи Си и пребудет с тобой Сила...
ЗЫ. Еще раз для туго соображающих. Код должен быть переносим. Поэтому форма чтения регистров должна быть универсальна.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486273#p4486273"]зато по поводу разницы между пик16 и 18 - могу честно заявить - хоть компилятор и один (хс8),
но работает по разному[/uquote]
Ну и что? Ясен перец, что если система команд отличается, то результат компиляции будет другим. Общность архитектуры не означает идентичность системы команд. Однако бОльшая часть набора инструкций идентична. Отличается лишь способ адресации.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486273#p4486273"]И пик18 точно выходит на заявленные 16 МИПС, пик16 на свои 5 МИПС не выходит.
А кто не верит, пусть в майне ногодрыг устроит.[/uquote]
Очередная эпичная глупость. :music:
Какое отношение ногодрыг имеет к МИПСам?
Есть куча архитектур, включая новейшие dsPIC33E и dsPIC33C (я уже не говорю про ARM-ы), где скорость портов ниже скорости ядра. В (М)ИПСах измеряют скорость исполнения инструкций (IPS - instructions per second), а не скорость портов.
Впрочем, у 10-х...16-х скорость вывода равна МИПСам. Просто нужно уметь программировать. :tea:
Напиши две инструкции подряд bsf-bcf и получишь импульс длительностью в 1 инструкцию.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486273#p4486273"]Особенно понравилось про Пельтье :)
Звучит красиво, выглядит как обычный нвагреватель :) Ну разве что четыре транзистора, и один ШИМ[/uquote]
Вот китайцы изначально так и сделали. В результате получился релейный режим и Пельтье приказал долго жить через три дня после первого включения холодильника.
Ты что нибудь слышал о PID-регуляторах? :)))
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

void Strob_E(void)
{
E_LCD = 1; // подаём строб
Nop();
E_LCD = 0; // снимаем строб
}

void Strob_E(void)
{
E_LCD = 1; // подаём строб
E_LCD = 0; // снимаем строб
}

Я работаю на частоте 5 МИПС, каждая команда - это 200 нс, в первом случае - я хочу задержку 200 нс, во втором - не хочу ВООБЩЕ задержки.
Напиши код, и выложи АСМ!
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486297#p4486297"]каждая команда - это 200 нс, в первом случае - я хочу задержку 200 нс, во втором - не хочу ВООБЩЕ задержки.
Напиши код, и выложи АСМ![/uquote]

Ты же любитель АСМ вставок... :)))
Не знаешь как написать на АСМе? Абисняю.

Код: Выделить всё

     bsf    E_LCD
     bcf    E_LCD
Ну и с нопом:

Код: Выделить всё

     bsf    E_LCD
     nop
     bcf    E_LCD
В первом случае будет импульс 200 нс, а во втором - 400 нс.
:tea:
Последний раз редактировалось КРАМ Вс окт 08, 2023 00:55:46, всего редактировалось 1 раз.
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4486299#p4486299"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486297#p4486297"]void Strob_E(void)
{
E_LCD = 1; // подаём строб
Nop();
E_LCD = 0; // снимаем строб
}

void Strob_E(void)
{
E_LCD = 1; // подаём строб
E_LCD = 0; // снимаем строб
}

Я работаю на частоте 5 МИПС, каждая команда - это 200 нс, в первом случае - я хочу задержку 200 нс, во втором - не хочу ВООБЩЕ задержки.
Напиши код, и выложи АСМ![/uquote]

Ты же любитель АСМ вставок... :)))
Не знаешь как написать на АСМе? Абисняю.

Код: Выделить всё

     bsf    E_LCD
     bcf    E_LCD
Ну и с нопом:

Код: Выделить всё

     bsf    E_LCD
     nop
     bcf    E_LCD
В первом случае будет импульс 200 нс, а во втором - 400 нс.
:tea:[/uquote]

Добавлено after 36 seconds:
Ты ДУРАК или притворяешься ?
Я хочу код на СИ, и его дизАСМ :)
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486300#p4486300"]Я хочу код на СИ, и его дизАСМ[/uquote]
А я не хочу. Поспорим? :wink:
Ты же утверждал, что в 16-х невозможно получить в порту 5 МИПС. Я тебе показал как это сделать.
Причем тут Си? :dont_know:
Тем более, что ты на Си пишешь пургу.
ЗЫ. Пора сворачивать общение с тобой... Ты мне наскучил. Пусть с тобой модераторы разбираются.
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4486302#p4486302"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486300#p4486300"]Я хочу код на СИ, и его дизАСМ[/uquote]
А я не хочу. Поспорим? :wink:
Ты же утверждал, что в 16-х невозможно получить в порту 5 МИПС. Я тебе показал как это сделать.
Причем тут Си? :dont_know:[/uquote]

А ты в курсе того, что я говорил недели ДВЕ назад ? что на пик16 невозможно написать чёткие тайминги.
Ты ЧТО ответил?
Ты типа можешь :) не, не так, ты написал что-то типа - не каждому дано написать :) ну дык отвечай за свои слова, или ты тут в качестве швабры ?

Добавлено after 10 minutes 52 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4486302#p4486302"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486300#p4486300"]Я хочу код на СИ, и его дизАСМ[/uquote]

ЗЫ. Пора сворачивать общение с тобой... Ты мне наскучил. Пусть с тобой модераторы разбираются.[/uquote]

Т.е. ПРАВДА глаза КОЛЕТ, а правду ты тут РЕДКО видишь :)
Ты привык, что ты тут ГЛАВНЫЙ ОТСОС :)
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Вас разнять ? Или сами успокоитесь ?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486303#p4486303"]отвечай за свои слова[/uquote]
:))) :))) :))) PIC16F1824:
Изображение Изображение
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4486362#p4486362"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486303#p4486303"]отвечай за свои слова[/uquote]
:))) :))) :))) PIC16F1824:
Изображение Изображение[/uquote]


Ай красава :)
Ну во первых, это не старый пик16, а новый :) ... у которого для переключения банков - используется аналогичный пик18 регистр "BSR". И переключается он не:
BxF STATUS, RPx
а с помощью команды:
MOVLB 0xXX

Да и не уведил я на твоих скринах КОРРЕКТНОГО переключения :) Куча ногодрыга - ДА! Но вменяемого - НОЛЬ :)

А ты видел, сколько у него банков того ОЗУ?
Там чтобы проц инициализировать - займёт половину памяти того же 16F886 :)

А давай такой простой вопрос, по твоему пик16 и 18 аналогичны?
Так сделай на самом крутом современном пик16 и на 18F46K22 работу с индикатором
https://aliexpress.ru/item/100500426655 ... 4aa6xy32uz

через ОЗУ проца, ну чтоб в любой момент - любую точку на индикаторе зажечь-погасить без чтения ОЗУ индикатора, которое в принципе и невозможно :)

Ну что? слабо, или покажешь код ? :)

А я по твоему коду - тебе дизАСМ выдам для обоих вариантов :)
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486405#p4486405"]Ну во первых, это не старый пик16, а новый :) ... у которого для переключения банков - используется аналогичный пик18 регистр "BSR". И переключается он не:
BxF STATUS, RPx
а с помощью команды:
MOVLB 0xXX[/uquote]
И что это меняет? Да ничего не меняет:
PIC16F630 - абсолютно идентично предыдущему примеру:
Изображение
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486405#p4486405"]Да и не уведил я на твоих скринах КОРРЕКТНОГО переключения :) Куча ногодрыга - ДА! Но вменяемого - НОЛЬ[/uquote]
Все совершенно корректно. Просто NOP-ы заменены на повторный вывод, чтобы не создавать зазор между обращениями к порту и обойти ограничение бесплатной версии компилятора. PRO-версия это сделает и без этого простого лайфхака.
Да и применять этот метод требуется лишь если длительность импульса равна двум машинным циклам. В остальных случаях он не требуется. Более того, этот метод не зависит от оптимизации. В отличии от...
Так что ты в очередной раз сел в лужу. И это ожидаемо, если учесть твои перманентные глупости, которые ты тут генерируешь.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486405#p4486405"]А ты видел, сколько у него банков того ОЗУ?
Там чтобы проц инициализировать - займёт половину памяти того же 16F886[/uquote]
Опять пурга. :facepalm: Инициализация определяется используемой периферией. И для новых чипов она даже компактнее в расчете на один модуль.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486405#p4486405"]А давай такой простой вопрос, по твоему пик16 и 18 аналогичны?[/uquote]
С точки зрения ядра и компилятора - да, аналогичны. С точки зрения ресурсов - отличаются. Мы не обсуждали тут ресурсы. Тут разговор идет о Си. И твой пустопорожний флуд неуместен.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4486405#p4486405"]Так сделай[/uquote]
:facepalm: Не надоело трепать языком?
У меня сохранилось фото макета измерителя резонансной частоты антенны противокражной системы с таким индикатором во время написания кода. Поэтому на экране тестовый вывод ряда чисел. Шрифт взят из Винды.
Сделано на PIC18F25K20 12 лет назад. Что там такого сложного ты нашел?
Изображение
Ответить

Вернуться в «PIC»