Jump to content
LiSiY5

Переходы в программе

Recommended Posts

Работаю в Mplab X 5.40, написал основной код программы для Pic16 на Си и есть небольшой код на ассемблере. Так вот, подскажите как правильно сделать переход на подпрограмму с Си на ассемблер и назад. Может на каком либо примере где-то есть. Заранее всем спасибо.

Share this post


Link to post
Share on other sites
1 час назад, LiSiY5 сказал:

Может на каком либо примере где-то есть

есть , в руководстве пользователя Си компилятора которым вы пользуетесь

Share this post


Link to post
Share on other sites

Может у кого то есть мануал на русском для компилятора xc8? Не могу найти нормальную ссылку...

Share this post


Link to post
Share on other sites

Повышаем уровень передаваемой мощности в однопарной сети Ethernet

В статье приведено описание новых гибридных разъемов для использования в SPE-приложениях. По сравнению с традиционными разъемами, в основе структуры которых лежит технология PoDL (Power over Data Line), предлагаемое решение содержит в себе дополнительные контакты питания, но сохраняет при этом компактные размеры. А работа с более высокими значениями тока значительно расширяет возможности применения предлагаемых разъемов в различных топологиях, по сравнению с PoDL.
Подробнее

15 часов назад, LiSiY5 сказал:

Работаю в Mplab X 5.40, написал основной код программы для Pic16 на Си и есть небольшой код на ассемблере.

Надеюсь, что код на ассемблере написан на pic-as?

Перевода на русский мануала последней версии XC8 (2.20) вы не найдете. Что естественно - Микрочип не переводит документацию на русский язык, а версии компилятора обновляются каждые полгода, примерно.

На форуме сайта Микрочипа есть неплохие ветки по практике работы на связке XC8/pic-as. Но это англоязычный сайт. Пользуйтесь переводчиком, если не владеете английским.

Например: https://www.microchip.com/forums/m1134573.aspx

 

Share this post


Link to post
Share on other sites

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

Подробнее

7 минут назад, my504 сказал:

Надеюсь, что код на ассемблере написан на pic-as?

и не надейтесь,   посмотрите посты ТС и код а-ля г-на Корабельникова, где он их только берет...

Share this post


Link to post
Share on other sites

Популярные пружинные клеммники Degson со склада Компэл

Пружинные разъемные клеммники Degson с технологией Push-In обеспечивают надежное и безопасное электрическое соединение. При их использовании исключается возможность короткого замыкания в точке контакта, что гарантирует надежное соединение. Электрическая безопасность клеммных блоков подтверждается соответствием мировым стандартам UL, IEC и VDE.
Подробнее

Ну тогда расстрою ТС. MPASM в MPLABX v5.40  НЕ ПОДДЕРЖИВАЕТСЯ. Только pic-as.

Share this post


Link to post
Share on other sites

Датчики дальности ST обеспечивают безопасность в период COVID-19

Оптические датчики приближения STMicroelectronics из семейства Flight Sense™, средства разработки и программное обеспечение для них позволяют как организовать бесконтактную работу торговых и информационных точек и соблюдение социальной дистанции в непростой эпидемический период, так и строить сложные пространственные системы вплоть до трехмерных моделей. Рассмотрим устройство для обнаружения и измерения расстояний до объектов без физического контакта, и инструментарий для его разработки, а также другие примеры.
Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Эти диоды,хоть и высоковольтные,но не настолько.Даташита на них нет-они специализированные.На напряжение примерно  до 1 киловольта..Так-как в узле проявки напряжение не более 700 вольт.   О,опередил меня.
    • Только что измерил штангелем расстояние, между углами губ, при прочтении сообщения от Михайлика и Кузмича. От Михайлика 55мм, от Кузмича 58. Т.е. получается примерно одинаковая степень юмора. А учитывая одинаковый розовый фон обеих сообщений можно рекомендовать Михайлику поставить лайк Кузмичу, а Кузмичу - поставить лайк Михайлику.
    • Если я верно понимаю - Lm в расчёт не берется, в книге расчёт идёт по обычной формуле резонанса - и не учитывает Lm, от себя добавлю - вторичку нужно мотать - обе полуобмотки вместе - чтоб была одинаковая индуктивность - иначе будут проблемы перемагничивания гистерезиса. С этим столкнулся когда собирал LLC.  Ток про серого волка - добрых мультов не видел - поэтому наверное такой злой))  Как соберу все до конца - запустим от бп - а там видно будет как плясать дальше) 
    • это высоковольтные диоды скорее всего до 1кВ, но ток может быть малый. Может по таким же искать ВВ диодам rg07,  zl007b тоже стоят в вв блоке принтера.
    • Нет там никакого ада. Комповские БП на пассивное охлаждение переводят. У меня на работе есть заводские регулируемые БП, собранные на TL494. Так они и при токе в 10А практически холодные. Я уже не говорю о MeanWell и т.п.
    • Нашел конденсаторы 1n5 с Юпитер-001 стоят на плате записи вроде бы . Буду пробовать 

  • Терморегулятор Tuya с Wi-Fi

  • Similar Content

    • By Miwago
      Всем доброго дня!  На данном сайте (http://smartep.ru/index.php?page=avr_asm_examples)  нашел пример управления сервоприводом SG90 с помощью микроконтроллера Atmega16 на Ассемблере.  С помощью программатора AVRasp, макетной платы и программы avrdude_prog-v.3.3 я прошил свой микроконтроллер Atmega16A. Все завершилось удачно. Я выставил в фьюзах 8Мгц частоты от внутреннего генератора, как указывал автор примера. Авто указывает - линия ШИМ сервопривода подключена к каналу А аппаратного ШИМ. Кнопки поворота подключены к линиям PD2 и PD3. Кнопка на линии PD2 увеличивает длительность импульса, кнопка на линии PD3 уменьшает длительность импульса. Схему подключения автор не дает. У меня собрать рабочую схему не получается. Может кто подскажет, как исходя из кода Ассемблера собрать схему?  Полный код программы в прикрепленном файле "Пример". Моя предположительная схема и фрагмент кода на фото.


      Пример Пример
    • By RIMUS1989i
      Здравствуйте. Вопрос к гуру, на сколько будет меньше разрыв данных при посылке через SPI 16бит, если ожидание готовности написать на ассемблере? И сразу второй вопрос, как правильно её вставить?
      void sendWord(uint16_t data) { SPDR = data; while(!(SPSR & (1<<SPIF))); // это заменить на ассемблерную вставку //вот тут видно задержку SPDR = data>>8; while(!(SPSR & (1<<SPIF))); // и это заменить на ассемблерную вставку } Этот код не работает (ассемблерная вырезка из даташита). Я не соображаю...
      asm volatile( "Wait_Transmit: in r16, SPSR sbrs r16, SPIF rjmp Wait_Transmit ret" ); Пока писал сообщение, понял свой косяк, регистр r16 в строке выше у меня не соответствует data.Тогда еще вопрос, как полностью этот кусок "sendWord" написать на ассемблере?
      Заранее Спасибо!
    • By Yon
      Пример программы для расчёта импульсных трансформаторов с открытым кодом (первая версия оценочная, примитивная, VB6).

      Архив файлов присутствует.
      P.S. Рекомендации и критика приветствуется.
      P.S. Источники: Хныков, Москатов, Старичек.
      P.S. Не профессионал, не програмист, не электронщик, просто интересующийся, иногда паяю.
      P.S. Да просто, да примитивно, будем учиться.
      Спасибо.
      file_xls.xls info_1.pdf Simple-Tor-Calculation.zip Simple-Tor-Calculation1.zip
    • By LiSiY5
      Ребята помогите, Я начинаю изучение Pic и не могу создать первую прогу. Сам программирую на LD, FBD, ASM, но тут не могу стартонуть, с выходами все получается, а вот с входами проблемка. Есть код на Си, подскажите в чем ошибка. Буду очень благодарен любой информации.

      // PIC16F18877 Configuration Bit Settings
      // 'C' source line config statements
      // CONFIG1
      #pragma config FEXTOSC = HS     // External Oscillator mode selection bits (HS (crystal oscillator) above 4MHz; PFM set to high power)
      #pragma config RSTOSC = EXT1X   // Power-up default value for COSC bits (EXTOSC operating per FEXTOSC bits)
      #pragma config CLKOUTEN = OFF   // Clock Out Enable bit (CLKOUT function is disabled; i/o or oscillator function on OSC2)
      #pragma config CSWEN = ON       // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed)
      #pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable bit (FSCM timer enabled)
      // CONFIG2
      #pragma config MCLRE = ON       // Master Clear Enable bit (MCLR pin is Master Clear function)
      #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
      #pragma config LPBOREN = OFF    // Low-Power BOR enable bit (ULPBOR disabled)
      #pragma config BOREN = ON       // Brown-out reset enable bits (Brown-out Reset Enabled, SBOREN bit is ignored)
      #pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (VBOR) set to 1.9V on LF, and 2.45V on F Devices)
      #pragma config ZCD = OFF        // Zero-cross detect disable (Zero-cross detect circuit is disabled at POR.)
      #pragma config PPS1WAY = ON     // Peripheral Pin Select one-way control (The PPSLOCK bit can be cleared and set only once in software)
      #pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a reset)
      // CONFIG3
      #pragma config WDTCPS = WDTCPS_31// WDT Period Select bits (Divider ratio 1:65536; software control of WDTPS)
      #pragma config WDTE = ON        // WDT operating mode (WDT enabled regardless of sleep; SWDTEN ignored)
      #pragma config WDTCWS = WDTCWS_7// WDT Window Select bits (window always open (100%); software control; keyed access not required)
      #pragma config WDTCCS = SC      // WDT input clock selector (Software Control)
      // CONFIG4
      #pragma config WRT = OFF        // UserNVM self-write protection bits (Write protection off)
      #pragma config SCANE = available// Scanner Enable bit (Scanner module is available for use)
      #pragma config LVP = ON         // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/Vpp pin function is MCLR.)
      // CONFIG5
      #pragma config CP = OFF         // UserNVM Program memory code protection bit (Program Memory code protection disabled)
      #pragma config CPD = OFF        // DataNVM code protection bit (Data EEPROM code protection disabled)
      // #pragma config statements should precede project file includes.
      // Use project enums instead of #define for ON and OFF.
      #include <xc.h>
      #define _XTAL_FREQ 20000000

      void main(void) {
          TRISB=0;
          PORTB=0;
          TRISA=11111111;
          PORTA=11111111;
          TRISA=11111111;
          if(PORTAbits.RA0 == 1) { RB0 = 1;}
          return;
      }
       
    • By tony161
      Здравствуйте. Нужна помощь в реализации идеи. У меня очень скудные знания в электронике и программировании, но я готов разбираться, если вы дадите направление куда копать.
      Есть реле, необходимо управлять его работой с компьютера из самодельной программы. В программе цикл периодического включения и отключения реле. Схему как это примерно должно выглядеть креплю.
      Как я себе это представляю: Пишу программу на си допустим из которой могу подключаться к пинам порта usb и выставлять/убирать на них напряжение. К пинам порта подключено реле 9В срабатывающее от напряжения на пинах (возможно придется два usb последовательно соединить и одновременно их включать чтоб 10В получить, звучит странно). Таким образом управляем реле с пк.
      Интересует реализуема ли подобная идея или как лучше что то подобное реализовать.
      В микроконтроллерах я 0, желательно бы без них обойтись. Из портов у меня только USB(.
      Что мне делать?
      Видел USB релейные модули (типа https://mcustore.ru/store/ispolnitelnye-moduli/relejnyj-modul-2-kanala-upravlenie-po-usb/?gclid=CjwKCAjw9vn4BRBaEiwAh0muDCAq2PAxtJGeb760LL3vmR7ExK0yiyH5DKwz0WC-60ea7Lj8WqwuJhoCTw4QAvD_BwE ) но они наверное не подходят, мне нужен контроль в моей программе, не просто включение отключение по нажатию курсором, а цикл включения отключения, а потом может и что еще сложнее. А они на МК, и как написать программу для взаимодействия с ними я не знаю. Хотя я понимаю что оптимальным вариантом наверное было бы взять такой модуль, заменить прошивку на свою и написать программу ПК по взаимодействию с МК.
       
       
       
      схема.rar
×
×
  • Create New...