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

Обновленный ассортимент тактовых кнопок Omron!

Компэл предлагает обновленный ассортимент миниатюрных тактовых кнопок производства компании Omron, который включает в себя разнообразные решения как для стандартных условий, так и для применения в условиях повышенной влажности.

Подробнее

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

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое

Подробнее

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

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

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

Share this post


Link to post
Share on other sites

Трансиверы ADIN1200 и ADIN1300 от Analog Devices для промышленного Ethernet

ADIN1200 и ADIN1300 – микросхемы физического уровня Ethernet (PHY), разработанные ADI для современных промышленных систем Ethernet реального времени. Микросхемы ориентированы на применения в промышленной автоматике, автоматизации зданий, заводов, робототехнике и управлением движением, а также в промышленном интернете вещей (IIoT).

Подробнее

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

Share this post


Link to post
Share on other sites

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...

  • Сообщения

    • Информация “распространялась“ от NASA, “конторки“ которая сначала распространяла “красные фото“, а после появления информации, что “они не должны быть красными“, разместила другие, а под “красными“ добавила приписку, что они “с измененными цветами“, что сложно не называть фальсификацией.  А количество “астронавтов“ превышающее число тех кто действительно побывал в космосе, тоже “красиво выглядит“ только “для картинки“. А если исключить всю информацию “изначально“ распространяемую от “сомнительной конторки“ NASA, что остается кроме “радиоперехвата“ никак не подтверждающего факта “высадки“?           Кто умеет пользоваться “китайским сегментом интернета“, почитайте в “первоисточниках“ как они, после доставки собственного “лунного грунта“, “засомневались“ в происхождении американского, и сопоставляли иные данные оказавшиеся схожими с данными СССР, и отличными от данных американцев.  Возможно это одна из причин того, что меморандум о сотрудничестве в исследованиях Луны, Китай подписал именно с приемником СССР, а не с США.   
    • Не обязательно. В подсохших конденсаторах может снижаться или периодически пропадать ёмкость. Ничего не взрывается и не коротит, просто может появиться фон, а затем так-же внезапно исчезнуть. Противная неисправность, искать приходится долго.
    • тупость несусветная ТАК ИСКАТЬ ..... в голову нужно не только есть .....
    • Viktor126 Не очень хочется снова все подбирать и особенно перепаивать! Ну предвыход поставлю BD139 BD140......Сейчас пересмотрел все 139 и 140, минимальный разброс по парам получается в 47-50 единиц! А у 814 и 815 разброс максимум в 10 единиц подобрал. Выходные есть 2SA1943-0 и 2SC5200-0. Есть и отечественные 2Т818А  и 2Т819А штук по 10 каждых и радиаторы именно под них. А под импорт игольчатые, выше фото есть. Под 818 и 19е сейчас сфоткаю.
    • чернил для 6-го класса - не бывает .... Нужно ЗНАТЬ что искать.
    • На выходе 30в, это с учётом шим стабилизации должно быть 50в амплитуды. К диодам в обратном направлении 100в будет прикладываться. На 150в надо, а то и 200.
    • нет и не будет .... и не нужна МАСТЕРУ зачастую ....
  • 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...