Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы начинающих PIC ASM
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт сен 27, 2024 21:14:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 718 ]     ... , , , 21, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн мар 04, 2024 14:27:00 
Говорящий с текстолитом
Аватар пользователя

Карма: 1
Рейтинг сообщений: 83
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1589
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Спасибо

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт мар 05, 2024 21:01:21 
Говорящий с текстолитом
Аватар пользователя

Карма: 1
Рейтинг сообщений: 83
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1589
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Кое-как описано:
9.8 PORTB Interrupt-on-Change
An input change on PORTB<7:4> sets flag bit, RBIF (INTCON<0>). The interrupt can be enabled/disabled by setting/clearing enable bit, RBIE (INTCON<3>). Interrupt priority for PORTB interrupt-on-change is determined by the value contained in the interrupt priority bit, RBIP (INTCON2<0>).

Как я понимаю, это по смене уровня, а не по фронтам, как ножки INTX? В ноль - прерывание, в единицу - опять, и т.д.? И аббревиатура KBIX не расшифрована в даташите.

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Чт мар 07, 2024 14:11:21 
Друг Кота
Аватар пользователя

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Вс сен 17, 2017 17:44:21
Сообщений: 4465
Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Рейтинг сообщения: 0
Кое-как описано:


Как я понимаю, это по смене уровня, а не по фронтам, как ножки INTX? В ноль - прерывание, в единицу - опять, и т.д.? И аббревиатура KBIX не расшифрована в даташите.

Нормально описано, почти на русском, только понимать надо тему. Это называется прерывание по изменению состояния.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Чт мар 14, 2024 23:57:59 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
Доброго времени суток. Возможно ли передать в макрос имя параметра с запятой (например GPIO,2) ? При попытке передать, видит зяпятую, и ругается, распознавая это как 2 отдельных параметра. Скобки () - не помогают.


Вернуться наверх
 
Материалы вебинара «Пленочные конденсаторы Hongfa для источников питания и силовой электроники»

Опубликованы материалы вебинара, посвященного пленочным конденсаторам компании Hongfa, на котором была представлена текущая линейка и модельный ряд продукции этого направления, включая новые, недавно вышедшие серии. На вебинаре были приведены актуальные примеры применения пленочных конденсаторов Hongfa в источниках питания, зарядных станциях для электротранспорта, преобразователях частоты, фотоэлектрических преобразователях и ветрогенераторах.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 09:17:09 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1399
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14392
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А если этот GPIO,2 обьявить чем-то другим...
К примеру
#define my_port (GPIO,2)
:roll:


Вернуться наверх
 
Помехоподавляющие пленочные конденсаторы Hongfa для бытовых и промышленных сетей

Компания Hongfa - один из лидеров азиатского рынка пленочных конденсаторов с полным циклом производства. Она выпускает пять серий помехоподавляющих конденсаторов этого типа как для бытовой, так и для трехфазной промышленной сети, а также для автомобильного применения. Продукция компании по ассортименту, параметрам и количеству серий конденсаторов ЭМП не уступает другим крупным производителям этого сегмента и может легко заменить ассортимент ушедших из РФ брендов.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 09:26:20 
Друг Кота
Аватар пользователя

Карма: 137
Рейтинг сообщений: 2802
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 22572
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
А если этот GPIO,2 обьявить чем-то другим...

Так работает не всегда.
Например в 16-битных пиках не работает и я дефайню только номер бита.
Код:
.equ enRS485_D,  15

Затем обращаюсь к нему как
Код:
  bset   LATD, enRS485_D

Это же АСМ, а не Си.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 10:37:39 
Электрический кот

Карма: 14
Рейтинг сообщений: 103
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1020
Рейтинг сообщения: 0
Возможно ли передать в макрос имя параметра с запятой (например GPIO,2)

Транслятор какой? Смотря какие макросредства.
<label> macro [<arg>,...,<arg>] - синтаксис
Read macro device, buffer, count - пример


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 13:27:17 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
... #define my_port (GPIO,2)...

Так и было сделано, только без скобок. Пробовал со скобками - ошибка не уходит, + появляется ругань на скобки при банальных "bsf my_port".
Пока сделал как сказал КРАМ (дефайню только номер бита, а уже внутри макроса подставляю его к GPIO), работает.
Но конечно будет не так удобно переносить этот код на МК с портами А,В,С и т.д.
Транслятор - стандартный MPASM, из состава MPLAB 8.92.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 15:03:31 
Электрический кот

Карма: 14
Рейтинг сообщений: 103
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1020
Рейтинг сообщения: 0
Что то ты не то делаешь...
#define D7_1 PORTC,4
0438 1607 01354 bsf D7_1
Errors : 0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 16:46:33 
Друг Кота
Аватар пользователя

Карма: 137
Рейтинг сообщений: 2802
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 22572
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Что то ты не то...

Ясен пень. Чтобы включить возможность сишных дефайнов, нужно расширение АСМ-файла писать ЗАГЛАВНЫМИ БУКВАМИ - .ASM
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 17:39:51 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1399
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14392
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Только вот...
От того, какой порт задействован номер его бита не изменится. У ПИКов нет прямоадресуемых бит (как у 51й). Меняется только адрес регистра спецфункций но номер линии остается одним и тем же... Возможно макрос как-то иначе надо организовать...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 17:49:29 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
...#define D7_1 PORTC,4...
БЕЗ СКОБОК (которые предлагал BOB51), и у меня не ругается на bsf. О чем я и написал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 18:06:56 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1399
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14392
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Попробуй дать номерам линий портов символьные имена.
#define это текстовая подстановка, а у вышеприведенного второй элемент - цифра...
:roll:
Допустим...
#define four 4 ; или через four equ 4
#define my_pin PORTB,four
.... :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 18:48:30 
Электрический кот

Карма: 14
Рейтинг сообщений: 103
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1020
Рейтинг сообщения: 0
и у меня не ругается на bsf. О чем я и написал.

А ты можешь ЧЛЕНОРАЗДЕЛЬНО написать что ты хочешь и что у тебя не получается?
А лучше приложить фрагмент исходника.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 18:58:17 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
... ЧЛЕНОРАЗДЕЛЬНО ... фрагмент исходника.

Сейчас:
Спойлер
Код:
#define UART_RX_PIN_NUMB 3
#define UART_RX_PIN           GPIO,UART_RX_PIN_NUMB

_waitLevel      macro   gpio,level
            movfw   GPIO      ; read GPIO state before sleep
            sleep
            nop               ; 1 nop after WakeUp
            #if level == 0
               btfsc   GPIO,gpio   
            #else
               #if level == 1
                  btfss   GPIO,gpio
               #else
                  ERROR "Waiting level is not valid"
               #endif
            #endif
            goto   $-4
            endm

_waitLevel UART_RX_PIN_NUMB,0   ; waiting \_ on UART_RX_PIN


А я хочу не привязыватся к мнемонике GPIO при проверке бита внутри макроса, чтобы иметь возможность свободно портировать его на PIC16:
Спойлер
Код:
#define UART_RX_PIN           GPIO,3

_waitLevel      macro   gpio,level
            movfw   GPIO      ; read GPIO state before sleep
            sleep
            nop               ; 1 nop after WakeUp
            #if level == 0
               btfsc   gpio   
            #else
               #if level == 1
                  btfss   gpio
               #else
                  ERROR "Waiting level is not valid"
               #endif
            #endif
            goto   $-4
            endm

_waitLevel UART_RX_PIN,0   ; waiting \_ on UART_RX_PIN


П.С. GPIO все равно еще с самого начала внутри макроса используется, но это я уже потом буду пытаться обойти.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт мар 15, 2024 22:11:10 
Электрический кот

Карма: 14
Рейтинг сообщений: 103
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1020
Рейтинг сообщения: 0
Обычно в макро оформляют самый низ, т.е. железо. Меняется железо - меняется только дефайны.
Код:
#define LED1    PORTC,2,1
#define LED2    PORTC,3,0

on      macro   port,pin,level
        if      level
        bsf     port,pin
        else
        bcf     port,pin
        endif
        endm

off     macro   port,pin,level
        if      !level
        bsf     port,pin
        else
        bcf     port,pin
        endif
        endm
       
        org     0
       
        on      LED1
        on      LED2
        off     LED1
        off     LED2
       
        end

На си проще. Я один и тот же софт, зачастую, изпользую вообще на разных семействах (PIC/AVR). Без изменений! Только дефайны.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб мар 16, 2024 02:09:02 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
Код:
#define LED1    PORTC,2,1

Спасибо, подсказали идею: обявить в макросе на 1 параметр больше и передавать дефайн порта как 2 параметра (имя порта+номер пина), через запятую.
Небольшая логическая несостыковка, но можно принять как данность. Задача решена.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб мар 16, 2024 03:28:48 
Друг Кота
Аватар пользователя

Карма: 137
Рейтинг сообщений: 2802
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 22572
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Без изменений! Только дефайны.

Это если весь софт - только ногодрыг. Да и то инициализация не совпадет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб мар 16, 2024 08:42:58 
Электрический кот

Карма: 14
Рейтинг сообщений: 103
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1020
Рейтинг сообщения: 0
Ногодрыг в большинстве простых устройств. Ну и UART, и SPI, и I2C, и EEPROM... Примерно так:
Код:
// в хедере - правим только здесь:
#define LED B,5,L
#define KEY B,0,L
#define BUZ C,1,H

#define con_init() (...)
#define UART_DATA UDR

// в С - без изменений:
int main() {
  out(LED);
  off(LED);
  off(BUZ);
  out(BUZ);
  pullup(KEY);
  con_init();
  con_printP("Hello " __DATE__ " " __TIME__);
  while (true) {
    if (pin(KEY)) {
      toggle(LED);
      on(BUZ);
      delay(SHORT_BEEP);
      off(BUZ);
    }
  }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб мар 16, 2024 15:32:11 
Друг Кота
Аватар пользователя

Карма: 137
Рейтинг сообщений: 2802
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 22572
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Ногодрыг в большинстве простых устройств.

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 718 ]     ... , , , 21, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y