Например TDA7294

Форум РадиоКот • Просмотр темы - вопрос по ассемблеру. PIC16f716 управляет симистором
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср апр 14, 2021 23:35:45

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


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



Начать новую тему Ответить на тему  [ Сообщений: 48 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Пт июн 26, 2020 23:17:50 
Родился

Зарегистрирован: Пн авг 03, 2015 23:58:21
Сообщений: 12
Рейтинг сообщения: 0
задался целью изучить пик контроллеры на ассемблере. есть плата от пылесоса самсунг на данном пике. собсно макет для опытов с полной обвязкой. подключение: прерывание вход RB0(меандр 5в,переход фазы через 0), выход на сим RB4(включение сим-низким уровнем).По итогу хочу написать код, чтоб при нажатии порта RB1 в грунт(кнопка), запускался мотор, с плавным набором оборотов. При удержании 3сек RB1-переключение на половину мощности. Написал код в мплаб, с задержкой включения сима на 5мсек(половина мощности), но компилятор выдает какую то ошибку, причину не понимаю. Кто нибудь может подсказать в чем ошибка? плавности в программе нет. в начале надо с неработой прерывания разобраться. :(
#include "p16f716.inc"

; CONFIG
; __config 0x3FB9
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF & _BODENV_40 & _CP_OFF


Reg1 equ 0010
intcon equ 0b
status equ 03
w_temp equ 0e
stat_temp equ 0f
w equ 0
f equ 1


org 0
goto start


org 0x04
goto int


int

movwf w_temp
movf status,w
movwf stat_temp
; Delay = 0.005 seconds
; Clock frequency = 4 MHz

; Actual delay = 0.005 seconds = 5000 cycles
; Error = 0 %

cblock
d1
d2
endc

;4998 cycles
movlw 0xE7
movwf d1
movlw 0x04
movwf d2
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto Delay_0

;2 cycles
goto $+1
bcf PORTB,RB4;включить сим


bcf intcon,intf;сброс флага прерывания по int
movf stat_temp,w
movwf status
swapf w_temp,f
swapf w_temp,w
retfie;возврат из прерывания


START
clrf status
clrf PORTA;очистить содержимое регистра порт А
clrf PORTB;очистить содержимое регистра порт Б
bsf STATUS,RP0;перейти в банк 1
movlw b'00001';запись в аккумулятор 5бит
movwf TRISA;копировать из акк в регистр A
movlw .255;запись в аккумулятор 8бит
movwf TRISB;копировать из акк в регистр Б
movlw .192
movwf OPTION_REG;включаем подтяжку портов Б+прерывания по переднему фронту
bcf STATUS,RP0;возврат в банк 0
bsf PORTA,RA2;устанавливаем 1 в порт RA2
movlw .144;закладка константы 144 в регистр w
movwf intcon;копир 144(10010000) из регистра w в регистр intcon(разрешение прерываний)


main
bsf PORTB,RB4;отключить сим


goto main
END


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Сб июн 27, 2020 10:22:40 
Друг Кота

Карма: 27
Рейтинг сообщений: 1249
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7565
Рейтинг сообщения: 0
Цитата:
компилятор выдает какую то ошибку

Какую, где она?


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Сб июн 27, 2020 23:48:44 
Родился

Зарегистрирован: Пн авг 03, 2015 23:58:21
Сообщений: 12
Рейтинг сообщения: 0
Код:
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/Vladimir/MPLABXProjects/Led111.asm.X'
make  -f nbproject/Makefile-default.mk dist/default/production/Led111.asm.X.production.hex
make[2]: Entering directory 'C:/Users/Vladimir/MPLABXProjects/Led111.asm.X'
"C:\Program Files\Microchip\MPLABX\v5.15\mpasmx\mpasmx.exe" -q -p16f716 -l"build/default/production/newpic_8b_general.lst" -e"build/default/production/newpic_8b_general.err" -o"build/default/production/newpic_8b_general.o" "newpic_8b_general.asm"
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 8 : Found label after column 1. (Reg1)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 9 : Found label after column 1. (intcon)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 10 : Found label after column 1. (status)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 11 : Found label after column 1. (w_temp)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 12 : Found label after column 1. (stat_temp)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 13 : Found label after column 1. (w)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 14 : Found label after column 1. (f)
Error[113]   C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 18 : Symbol not previously defined (start)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 25 : Found label after column 1. (int)
Message[313] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 36 : CBLOCK constants will start with a value of 0.
Error[113]   C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 57 : Symbol not previously defined (intf)
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 65 : Found label after column 1. (START)
Message[302] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 71 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 73 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 75 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Warning[207] C:\USERS\VLADIMIR\MPLABXPROJECTS\LED111.ASM.X\NEWPIC_8B_GENERAL.ASM 82 : Found label after column 1. (main)
nbproject/Makefile-default.mk:107: recipe for target 'build/default/production/newpic_8b_general.o' failed
make[2]: Leaving directory 'C:/Users/Vladimir/MPLABXProjects/Led111.asm.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/Vladimir/MPLABXProjects/Led111.asm.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/default/production/newpic_8b_general.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 2s)


Последний раз редактировалось vladserebrya Вс июн 28, 2020 12:42:06, всего редактировалось 1 раз.

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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вс июн 28, 2020 07:21:54 
Электрический кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 46
Зарегистрирован: Вт мар 06, 2007 08:57:32
Сообщений: 1074
Откуда: Алтай
Рейтинг сообщения: 0
При выкладке исходного кода используйте тэг code.

_________________
-Они не курят, они не пьют, они не ругаются матом. Кто они?
- Животные...
(С) М. Задорнов


Вернуться наверх
 
Пружинные клеммники Degson - высокое качество соединения по оптимальной цене!

Пружинные клеммные блоки Degson для монтажа на печатную плату – это простое и надежное соединение, которое позволяет легко решать задачи для различных приложений за счет обширного ассортимента. Клеммники Degson доступны в двух конструктивных исполнениях (торцевой контакт и зажимная клеть), имеют различные направления ввода проводника (45°, 90°, 180°) и обладают широким диапазоном поперечных сечений (0,2…2,5 мм2).

Подробнее>>
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вс июн 28, 2020 08:18:26 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 801
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
ну он же английским языком говорит, что не может сделать goto start, потому что start не определена, и bcf intcon,intf ему не сделать, потому что не знает, что такое intf.
Надо самостоятельно с таким разбираться - это позволит изучить принцип языка программирования и особенности среды разработки и компилятора вообще. Иначе придется здесь задавать сотни вопросов, что не так страшно, но придётся ведь ещё и ждать сотни ответов...

_________________
Меня здесь больше нет


Вернуться наверх
 
Вебинар «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок» (27.04.2021)

Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, изолированное питание и технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вс июн 28, 2020 11:16:33 
Друг Кота
Аватар пользователя

Карма: 114
Рейтинг сообщений: 2066
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16186
Откуда: Московская область
Рейтинг сообщения: 3
Читайте комментарии в исправленном коде и обратите внимание на форматирование текста, включая отступы от края:
Код:
; файл p16f716.inc должен быть включен в проект
   #include "p16f716.inc"

; CONFIG
; __config 0x3FB9
   __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF & _BODENV_40 & _CP_OFF

;=== определения переменных в перемещаемом режиме
; только так в MPLABX их можно будет увидеть
; в окнах Watch/Variables
; udata_shr - означает, что переменные будут размещены
; в области видимости всех банков
; udata - размещение с начала ОЗУ
; udata 0x2A - размещение в ОЗУ с адреса 0x2A
; res 1 - размер переменной в байтах
   udata_shr
d1         res 1
d2         res 1
Reg1      res 1
w_temp      res 1
stat_temp   res 1

;=== это эпичная галиматья ===
;=== в стиле приснопамятного =
;=== мистера Корабельникова ==
;   cblock
;   d1
;   d2
;   endc
;Reg1 equ 0010
;intcon equ 0b
;status equ 03
;w_temp equ 0e
;stat_temp equ 0f
;w equ 0
;f equ 1
;==========
; директива ORG НЕ должна быть расположена с начала строки
      ORG 0
   goto start ; имя метки должно совпадать с точностью до регистра
; если специально не включен режим нечувствительности к регистру
; это касается и всех имен регистров из файла p16f716.inc

      ORG 0x04
   goto int

; метки кода должны быть с начала строки
; и желательно с двоеточием, чтобы в редакторе
;выделялись цветом
int:
   movwf w_temp
   movf STATUS,w
   movwf stat_temp
; Delay = 0.005 seconds
; Clock frequency = 4 MHz

; Actual delay = 0.005 seconds = 5000 cycles
; Error = 0 %
;4998 cycles
   movlw 0xE7
   movwf d1
   movlw 0x04
   movwf d2
Delay_0:
   decfsz d1, f
   goto $+2
   decfsz d2, f
   goto Delay_0

;2 cycles
   goto $+1
   bcf PORTB,RB4;включить сим


   bcf INTCON,INTF;сброс флага прерывания по int
   movf stat_temp,w
   movwf STATUS
   swapf w_temp,f
   swapf w_temp,w
   retfie;возврат из прерывания


start:
   clrf STATUS
   clrf PORTA;очистить содержимое регистра порт А
   clrf PORTB;очистить содержимое регистра порт Б
   bsf STATUS,RP0;перейти в банк 1
   movlw b'00001';запись в аккумулятор 5бит
   movwf TRISA;копировать из акк в регистр A
   movlw .255;запись в аккумулятор 8бит
   movwf TRISB;копировать из акк в регистр Б
   movlw .192
   movwf OPTION_REG;включаем подтяжку портов Б+прерывания по переднему фронту
   bcf STATUS,RP0;возврат в банк 0
   bsf PORTA,RA2;устанавливаем 1 в порт RA2
   movlw .144;закладка константы 144 в регистр w
   movwf INTCON;копир 144(10010000) из регистра w в регистр intcon(разрешение прерываний)


main:
   bsf PORTB,RB4;отключить сим
   goto main

   END


Добавлено after 17 minutes 55 seconds:
По поводу алгоритма для решения целевой задачи.
Нужно по максимуму использовать периферийные модули (таймеры и прочие интерфейсы), которые позволят сделать сам код асинхронным от формирования диаграммы работы схемы.
Рекомендую для повышения читабельности кода использовать единые правила имен для меток, переменных, констант. Регистры специального назначения определены в хедере .inc и выделяются редактором цветом (по умолчанию - голубым, но можно изменить в настройках).
Я, например, все переменный называю со строчной (маленькой) буквы, а все метки - с прописной (большой).
При этом многословные имена пишу слитно, но каждое слово начинаю с прописной, не считая первой буквы.
Так метки будут выглядеть как:
Код:
MainCalculate:
PollingRS485:
CalcCRC8:
;и т.д.

Переменные:
Код:
ptrArrayRS485  res 1
arrayRS485  res 128  ; это массив 128 байт
counterRequest res 1
accumFIR res 4 ; это переменная 32 разряда (4 байта)
; обращение к переменным более 1 байта можно вести по имени:
; accumFIR+0 или accumFIR - младший байт 32-разрядной переменной
; accumFIR+1
; accumFIR+2
; accumFIR+3 - старший байт 32-разрядной переменной
;и т.д.

Константы в коде нужно всегда стараться именовать и выносить в начало, чтобы потом не искать их по тексту, особенно если они применяются в нескольких местах:
Имя констант я обычно пишу прописными, разделяя слова подчеркиваниями:
Код:
DEF_FREQ_MAIN_MODE  equ  .200
SERIAL_NUMBER  equ  .15

Значения констант нужно использовать в том виде, в котором они удобны для восприятия, а не рандомно.
То есть при установке значений спецрегистров побитно нужно использовать бинарный формат b'10010000', а не десятичный .144. Если речь идет о маске, то либо хекс (0xF3), либо бинарный b'11110011' формат. А если это значение частоты или множитель, то десятичный.

Добавлено after 28 minutes 56 seconds:
Перед обращением к регистру специального назначения удобно применять макрос banksel <имя регистра>:
Код:
   movlw   <значение>
   banksel   OPTION_REG
   movwf    OPTION_REG
   movlw   <значение>
   banksel   PIE1
   movwf    PIE1

тогда не нужно постоянно узнавать в даташите о размещении этого регистра по банкам. Ассемблер это сделает за вас.
Кстати, при этом исчезнут и варнинги о банках.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вс июл 05, 2020 23:05:24 
Родился

Зарегистрирован: Пн авг 03, 2015 23:58:21
Сообщений: 12
Рейтинг сообщения: 0
можете примерно обрисовать, каким образом асинхронный режим реализуется. я это понимаю, что смещение открытия сима происходит с уменьшением задержки с 10мс, но как это программно реализуется-не очень представляю. и еще интересует, каким образом на датчике перегрузки (порт RB1) висит постоянка(без подтяжек внешних) и при замыкании на грунт, включается диод. как так?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Пн июл 06, 2020 10:03:12 
Друг Кота
Аватар пользователя

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

Скажем, вам нужно реализовать фазоимпульсное управление симистором. Тогда в зависимости от возможностей периферии можно реализовать один из двух сценариев.
1. Внешнее прерывание от схемы выделения перехода через ноль (любого направления) подключают в качестве триггера к модулю CCP (Output Compare). Выход этого модуля и управляет симистором, формируя задержку относительно перехода через ноль сети и необходимую длительность импульса поджига на УЭ симистора. Вместе с этим будет кошерно измерять период сетевого напряжения с помощью того же модуля CCP, но уже его Input Capture. Полученную и отфильтрованную усреднением (скользящим фильтром или рекурсивным-экспоненциальным) величину периода умножают на заданный угол зажигания и пересылают в регистр дьюти-цикла Output Compare.
При этом расчет фильтра и умножение на угол зажигания делается асинхронно в основном цикле от полученной временной диаграммы по флагам (флаг проверяется по мере исполнения основного цикла) выставляемым Input Capture по готовности данных в прерывании от этого модуля.
Это "лакшери"-вариант.
2. Более простой вариант - это без триггера запуска Output Compare в прерывании по переходу через ноль "ручками" запуская оный Output Compare. остальное - так же.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вт июл 21, 2020 18:22:59 
Открыл глаза

Карма: -3
Рейтинг сообщений: -36
Зарегистрирован: Пт июн 26, 2020 16:33:29
Сообщений: 63
Рейтинг сообщения: -4
Цитата:
задался целью изучить пик контроллеры на ассемблере.

Ууу, вы с этим опоздали лет на 10 :)) PIC16, да еще и на ассемблере - эт нынче неактуально вовсе. Лет 10-15 назад люди активно занимались таким творчеством, а сейчас материалы только в архивах искать, да спрашивать у тех, кто еще хоть помнит что-то с тех времён.

Мистер Корабельников - это даааа, зачотный был кекс, всё по-своему перевирал.

_________________
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вт июл 21, 2020 21:23:14 
Потрогал лапой паяльник
Аватар пользователя

Карма: 5
Рейтинг сообщений: 56
Зарегистрирован: Ср окт 04, 2017 20:47:40
Сообщений: 331
Рейтинг сообщения: 0
Цитата:
задался целью изучить пик контроллеры на ассемблере.
Ууу, вы с этим опоздали лет на 10 :)) PIC16, да еще и на ассемблере - эт нынче неактуально вовсе. .

Какое интересное "профессиональное" мнение. :roll:
По вашему нонче у "продвинутых" в тренде должна быть полная и безоговорочная безграмотность и по архитектуре МК, и по его составу и возможностям, и пр. и пр.?
P.S. Напомнило, из далёкого прошлого, но видимо и до селе актуально: "... нафига нам знать географию, извозчик довезёт". :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Вт июл 21, 2020 22:59:54 
Друг Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 129
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3120
Рейтинг сообщения: 0
valentinovich писал(а):
По вашему нонче у "продвинутых" в тренде должна быть полная и безоговорочная безграмотность и по архитектуре МК, и по его составу и возможностям, и пр. и пр.?
То есть нельзя изучать архитектуру МК на примере современных МК? :)

valentinovich писал(а):
Напомнило, из далёкого прошлого, но видимо и до селе актуально: "... нафига нам знать географию, извозчик довезёт".
Вам ни разу не приходилось пользоваться навигатором? Если пользовались, значит "географию" не знаете! :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 04:58:30 
Открыл глаза

Карма: -3
Рейтинг сообщений: -36
Зарегистрирован: Пт июн 26, 2020 16:33:29
Сообщений: 63
Рейтинг сообщения: -4
Какое интересное "профессиональное" мнение. :roll:

Хорошо, давайте изучать программирование на дискретной логике, как делали наши продвинутые предки.
Я к тому написал, что сейчас, в 2020 году сложно будет найти единомышленников. Остались те, кто по памяти еще может чего и вспомнит. Я когда-то неплохо знал эти PIC16 и асм, но уже позабыл за ненадобностью. Какие там возможности у МК конца прошлого тысячелетия?
А изучать можно и на современной элементной базе, принципы то те же, и вы ничего не потеряете.

_________________
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 05:47:42 
Друг Кота
Аватар пользователя

Карма: 114
Рейтинг сообщений: 2066
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16186
Откуда: Московская область
Рейтинг сообщения: 0
Хорошо, давайте изучать программирование на дискретной логике, как делали наши продвинутые предки.

Программирование ЧЕГО? Контроллеров? Тогда причем тут "дискретная логика"?
Вы видимо не отличаете программирование МК от схемотехники...
Если по существу, то каждый выбирает свой путь. Чтобы хомячки могли гордо назвать себя "погромиздами ардуин", нужно чтобы кто-то создал для них эту "продвинутую" абстракцию. И на этапе создания ардуин очень желательно знать и схемотехнику логических элементов, и АСМ и много чего еще.
Это касается не только ардуин, но и любого использования "черных ящиков". И не только в программировании, но и в схемотехнике.
Есличо, следуя вашей логике, совершенно излишне изучать электротехнику и радиотехнику на том основании, что есть достаточно законченные микросхемы, которые можно применять с примитивными знаниями и поверхностным чтением даташитов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 06:01:59 
Открыл глаза

Карма: -3
Рейтинг сообщений: -36
Зарегистрирован: Пт июн 26, 2020 16:33:29
Сообщений: 63
Рейтинг сообщения: -4
Чего чего. Программирование в обсчем. Ведь есть же дискретные микросхемки с ППЗУ, регистрами, АЛУ. А микроконтроллер - это всё то же самое, только под одним корпусом. И чтобы понять, как работает микроконтроллер, нужно вначале потренироваться на дискретных микросхемках, запрогать микросхемку ППЗУ, соединить проводками отдельные микросхемки. Чтобы понять, что такое a | b, нужно взять микросхемку дискретной логики. Вот отсюда давайте и начинать. Иль может достаточно просто прочитать в книжке и запомнить?
Причем тут ардуйня? Она, в основном, на старой элементной базе, такой же как и ПИК16, только паять ничего не надо.

Мануалы никто не запрещает читать на современную элементную базу. Вы видели мануалы на тот же STM32? Там несколько тысячестраничных документов. Ну и кто запрещает это читать? Идя в ногу со временем, вы не будете хуже разбираться. Зато вы не потеряете время на неактуальную элементную базу.
Вот потому я и говорю, что "давайте тогда уж на дискретной логике учиться".

Вообще, вспоминая своё прошлое, когда я чето там возился с ПИК18, мне сказали: "Да нафик ты возишься с этим старьем! Щас новое появилось, попробуй и не отставай от жизни, не теряй время!" И я последовал совету. Так то было 7 лет назад!
А сейчас, аж в 2020 году, когда советуешь "не отставать от времени и запрыгнуть на подножку уходящего поезда", находятся люди, которые будут тянуть назад, заявляя, что "начало тысячелетия - наше всё! не стремитесь вперед - впереди мрак и потьма".

_________________
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 08:53:34 
Друг Кота
Аватар пользователя

Карма: 114
Рейтинг сообщений: 2066
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16186
Откуда: Московская область
Рейтинг сообщения: 0
может достаточно просто прочитать в книжке и запомнить?

...да вы прямо "Макаренко"... :))) :))) :))) Сразу видно высшее образование уровня Стенфорда. Такую простигосподи пургу несете - что даже мне стыдно.

Причем тут ардуйня? Она, в основном, на старой элементной базе, такой же как и ПИК16, только паять ничего не надо.

Даладна!!! Ардуино, милостивый государь, может быть и есть НА ЛЮБОЙ аппаратной платформе, включая STM32F7xx. Патамушта Ардуино - это не про железо. Ардуино - это среда разработки и уровень абстракций.

Вы видели мануалы на тот же STM32? Там несколько тысячестраничных документов. Ну и кто запрещает это читать?

Сразу видно, что вы эти "тысячистраничные документы" лично себе читать запретили...
ЗЫ. Я вообще то в данный момент имею два открытых проекта на F051 и F407. И эти "тысячи страниц" у меня постоянно открыты на рабочем столе компьютера...

Вообще, вспоминая своё прошлое, когда я чето там возился с ПИК18, мне сказали: "Да нафик ты возишься с этим старьем! Щас новое появилось, попробуй и не отставай от жизни, не теряй время!" И я последовал совету. Так то было 7 лет назад!

Вам сказали глупость. А вы последовали этой глупости.
Нормальный эмбеддер никогда не сидит на одной платформе. Последний PIC18FxxQ43 пожалуй сильно покруче STM32F0 будет. Для периферийных приложений - точно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 09:59:03 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 1046
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11793
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Цитата:
задался целью изучить пик контроллеры на ассемблере.

Ууу, вы с этим опоздали лет на 10 :)) PIC16, да еще и на ассемблере - эт нынче неактуально вовсе. Лет 10-15 назад люди активно занимались таким творчеством, а сейчас материалы только в архивах искать, да спрашивать у тех, кто еще хоть помнит что-то с тех времён.

Мистер Корабельников - это даааа, зачотный был кекс, всё по-своему перевирал.


Работа под ассемблером РАЗНАЯ бывает.
И отнюдь не "по Корабельникову" (хотя и в его публикациях полнзные алгоритмы имеются).
Другое дело - мало кто "глубококопанием" занимается после перехода на "чистый Си" да появления адуринок (кои также безбожно "упрощаются").
Мое менение (слэнговый вариант "многофайловиков" под "чистым ассемблером" для MCS51, AVR, PIC10/12/16
и работа под Си/С++ в рамках "референса" ардуиноIDE) вот тут
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
и тут
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
выложено - там и проекты со схемами, открытыми исходниками...
Желающие могут заглянуть да потрындеть по интересующим вопросам...
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 13:27:21 
Открыл глаза

Карма: -3
Рейтинг сообщений: -36
Зарегистрирован: Пт июн 26, 2020 16:33:29
Сообщений: 63
Рейтинг сообщения: 0
Нууу, понеслось бессмысленное хвастовство. Даже не стал читать, я тут не для этого. Одно скажу - для кого-то STM32F051 и F405 - предел мечтаний, а для кого-то и STM32MP157 - так себе, ничего сверхособого. (Кста, F051 вообще пора уже назусть знать, там ничего особого, всё стандартно до предела).
Надо соответствовать времени.

_________________
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 14:18:44 
Друг Кота
Аватар пользователя

Карма: 114
Рейтинг сообщений: 2066
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16186
Откуда: Московская область
Рейтинг сообщения: 0
Нууу, понеслось бессмысленное хвастовство. Даже не стал читать, я тут не для этого.

Вы чего то напутали. Это в каком месте я хвастался? Я всего лишь уведомил вас, что не стоит меня лечить тривиальной пургой - я в курсе "тысяч страниц".
И все.
Что касается вашей полной информированности относительно F051, то рискну задать контрольный вопрос (я выяснил для себя проблему самостоятельно, есличо).
Итак.
На 4-м канале ДМА формируется пакет ответа в УАРТ из некоего массива. Инициализирую УАРТ, ДМА, таймер реквестов и в основном цикле в определенное время запускаю таймер и пакет отлично формируется. В следующем цикле передачи я сбрасываю таймер, включаю канал ДМА, запускаю таймер и .... пакет больше не формируется.
Вопрос. Что я делаю не так?
По поводу МР1. И тут вы несете пургу. Это специфический кристалл, который, во первых, - совершенно избыточен для подавляющего количества приложений, во-вторых, - топологически неудобен, патамушта требует внешнюю оперативную память для процессорного ядра и многослойную п/п обеспечивающую качество скоростных сигналов процессорного ядра. Ничего сильно современного в этом чипе нет и он никогда не станет мейнстримом в обычном аппаратном эмбедде.
Что касается его сложности, то фактически это два чипа. Все что отличает его от других - это кроссшины межядерного обмена. Но что там такого сложного?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 14:33:07 
Открыл глаза

Карма: -3
Рейтинг сообщений: -36
Зарегистрирован: Пт июн 26, 2020 16:33:29
Сообщений: 63
Рейтинг сообщения: -4
Ну, не вам меня экзаменовать, скажем так, не вам... Вы, помнится, "5 лет назад с перерывами" начали только, так ведь?
Ну и как бы - что за манера, не зная опыта другого человека, начинать ему что-то доказывать там? Ой, кароч, всё, не хочу больше с вами разговаривать, ибо не вам меня учить, это уж стопудово!

Про MP1 - это другой уровень. Практически такого же типа, как и в одноплатниках типа Малины (но малость недотянул). Поэтому ему разумеется нужна внешняя DDR, внешняя флеш-память. А выпускается для него микросборка QSMP. Это просто другой уровень - 2xA7+M4, графическая 3D-подсистема, поэтому и применение у него иное, не для средних умов, скажем так.
Если вам кажется, что ничего сложного - то просто попробуйте. Без шапкозакидательства - попробуйте. Потом расскажете. (Я, кстати, уже напробовался).

Цитата:
На 4-м канале ДМА формируется пакет ответа в УАРТ из некоего массива. Инициализирую УАРТ, ДМА, таймер реквестов и в основном цикле в определенное время запускаю таймер и пакет отлично формируется. В следующем цикле передачи я сбрасываю таймер, включаю канал ДМА, запускаю таймер и .... пакет больше не формируется.

Да, спасибо, оценил ваш "уровень" знаний по этой галиматье :) Как говорится, спасибо, всё ясно, можете не продолжать, написанное весьма красноречиво вас представило как "спецыализта" :)

_________________
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen


Последний раз редактировалось Питание Ср июл 22, 2020 17:27:01, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: вопрос по ассемблеру. PIC16f716 управляет симистором
СообщениеДобавлено: Ср июл 22, 2020 14:54:38 
Друг Кота
Аватар пользователя

Карма: 114
Рейтинг сообщений: 2066
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16186
Откуда: Московская область
Рейтинг сообщения: 0
не вам меня учить, это уж стопудово!

Ну это как водится... Бла-бла-бла, но если вопрос конкретный, то тут и выясняется, что еще один ардуинщик пытается учить людей жизни...
ЗЫ. МР1 - это попытка СТМ впрыгнуть в поезд на полном ходу. Никаким "другим уровнем" этот чип не является. Обычный двухядерный SoC, где процессорное ядро вы сами писать не будете, а возьмете готовую линукс-сборку от СТМ или сторонней конторы.
Судя по всему, вы в CMSIS не работаете и сами драйверы не пишите...

Добавлено after 3 minutes 55 seconds:
Если вам кажется, что ничего сложного - то просто попробуйте.

Зачем? Я прекрасно понимаю механизм работы с процессорными ядрами. И эта тема вообще никак не связана с моими профессиональными потребностями.
Скорее я буду применять двухядерники с одинаковыми ядрами - оба контроллерные. Этот проект стоит в плане. И он не про СТМ.


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

Часовой пояс: 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