Например TDA7294

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





Текущее время: Пн июн 17, 2024 07:43:33

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


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



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

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

_________________
gentoo kicad 7


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

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 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
Рейтинг сообщений: 13
Зарегистрирован: Вс сен 17, 2017 17:44:21
Сообщений: 3911
Откуда: 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 отдельных параметра. Скобки () - не помогают.


Вернуться наверх
 
Важные нюансы подбора литиевых ХИТ для разработчиков

В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.

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

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


Вернуться наверх
 
Литиевые батарейки и аккумуляторы от мирового лидера EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. EVE является поставщиком аккумуляторных элементов круглого формата для электрических моделей автомобилей. Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного.

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

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

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

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

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


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

Карма: 14
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 986
Рейтинг сообщения: 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
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 986
Рейтинг сообщения: 0
Что то ты не то делаешь...
#define D7_1 PORTC,4
0438 1607 01354 bsf D7_1
Errors : 0


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

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

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


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

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


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

Карма: 14
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 986
Рейтинг сообщения: 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
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 986
Рейтинг сообщения: 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 
Друг Кота
Аватар пользователя

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

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


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

Карма: 14
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 986
Рейтинг сообщения: 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 
Друг Кота
Аватар пользователя

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

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


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

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


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

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


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

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


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