Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 29.09.2019, 10:46  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Сообщений: 4,418
Сказал спасибо: 395
Сказали Спасибо 2,205 раз(а) в 1,306 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от pic121618 Посмотреть сообщение
видишь биты, но даже не понимаешь что с ними делать
Не понимаете - вините себя самого. На скрине внизу - все нарисовано-написано, все биты. Есть биты, есть описание, есть ассемблер. Что мешает сделать? Собственная бестолковость? Да.
Ассемблер для АРМ - это не 35 инструкций в ПИК16. Thumb-2 для Cortex M7 - это 220 базовых инструкций, умноженных на несколько их вариантов, итого - более 1500 ассемблерных инструкций!!, плюс вариативный второй операнд, который может быть дополнительной инструкцией. Вы сможете запомнить хотябы десятую часть из них??
Я знаю и понимаю ассемблер для АРМ. Но писать на нем что-то большее, чем:
Код:
ldr	r1, [pc, #148] 
ldr	r2, [r3, #0] 
ldr	r0, [pc, #148] 
lsls	r2, r2, #28 
ite	pl
ldrpl.w	r3, [r3, #148]
ldrmi	r3, [r3, #0]
ldr	r2, [r1, #8]
ite	pl
ubfxpl	r3, r3, #8, #4
ubfxmi	r3, r3, #4, #4
and.w	r2, r2, #12
cmp	r2, #8
ldr.w	r3, [r0, r3, lsl #2]  - составной второй операнд lsl #2
beq.n	200013a6
cmp	r2, #12
beq.n	Ext
-уж извините.
Писать на АРМ-ассемблере можно, но далеко на нем не уедешь. А инициализация того же USB или Ethernet - это по большей части НЕ битовые операции. Уже не говоря о графической подсистеме. Когда у вас есть графический цветной дисплей хотябы 800х480, и вы начинаете рисовать графический интерфейс пользователя со множеством интерактивных элементов, текста, виртуальных приборов - вот тут вы на ассемблере завязните по самые помидоры.
Я уже и не заикаюсь про Cortex A7 (и выше), являющийся процессорным ядром с двухуровневым кэшем инструкций и данных.

Вся серия PIC16 - убога от рождения и годилась только для старта начинающих. Ей не помогла циферка 1 в номере. Кстати, она появилась очень давно уже!. Но как были фундаментальные проблемы, так они и остались. Банковая нелинейная организация ОЗУ, страничная организация флеша - это убогость! Регистры управления и регистры ОЗУ, идущие вперемешку друг с другом - это убогость и ненадежность! Для смены банка нужно вначале подергать биты селектора банков, и лишь потом чето изменить/прочитать. 4 такта на инструкцию - это жутко старо, конец прошлого тысячелетия!
А попробуйте на PIC16 умножить 547 на 263 (на практике - значение АЦП умн. на коэфф.) - сколько текста будет на ассемблере?
На АРМ это:
Код:
mov r0, #574
mov r1, #263
mul r0, r0, r1
Исполнение - три такта.

И еще раз - лично для вас, лично для ваших скудных ограниченных возможностей - PIC16 - самое то, что доктор прописал. Пользуйтесь, пожалста, никто вам не запрещает.
Однако, другие люди - на вас не похожи. Другие уже давно перешагнули скудные возможности PIC16 и повыкидывали их, чтобы не захламляли место в коробочках. Если лично вам некуда дальше расти и жизнь на этом закончена, то вы конечно имеете полное право сидеть на PIC16F1xxx, у которых фундаментальные проблемы идут еще с первых PIC16С501 конца прошлого тысячелетия.

Ну и еще раз - если предел ваших возможностей - мигалки, поливалки и включатели релюшек - то конечно вы в праве оставаться на этом пределе, никто вас не гонит за прогрессом. Оставайтесь и сидите. ВАС НИКТО НЕ ЗАСТАВЛЯЕТ, не стоните и не нойте!

А вообще, pic121618, у вас речь - крайне бестолковая и глупая, содержит простой набор фраз. Те, кто в теме технических аспектов, понимают, что от вас исходит бестолковый набор фраз, не имеющих ничего общего с реальным положением дел. Когда вы начинаете рассуждать, вы такую ересь несете, что ни один уважающий себя специалист просто не станет терять время на вас.
Миниатюры:
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 0
Размер:	28.9 Кб
ID:	145828  
Реклама:

Последний раз редактировалось NewWriter; 29.09.2019 в 13:04.
NewWriter вне форума  
Непрочитано 02.10.2019, 20:16  
enigm
Частый гость
 
Регистрация: 30.06.2007
Сообщений: 38
Сказал спасибо: 10
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
enigm на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от pic121618 Посмотреть сообщение
Да никто не отжирал у Вас ресурсы:
1. У Вас есть один физический проц
2. При запуске Протеуса ему хватает ресурсов, он об этом сообщает
3. Наслаждайтесь полученным результатом, или же подойдите к зеркалу -
там увидете барана, который повёлся на маркетинговую рекламу о
1000 встроенных ядер...
Ндяя, как все запущенно.
То протеусу не хватает ресурсов, то уже все хватает.
Вы похоже сами в том зеркале находитесь, ибо кроме своей болтовни вы нифига не читаете что вам пишут )))
Разбей зеркало, а то так бараном и останешься.
enigm вне форума  
Непрочитано 10.11.2019, 19:53  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Здравствуйте.
PIC16
XC8 v1.20

Объясните почему Proteus выставляет горчичник на выражение PR2-=16; Причем не регулярно, а изредка, при симуляции.
Собственно горчичник:
[PIC16 MEMORY] PC=0x0005. Attempt to write unimplemented memory location 0x00FE with 0x05 ignored. [U1]
[PIC16 MEMORY] PC=0x0384. Attempt to read unimplemented memory location 0x00FE ignored. [U1]


Код:
if (flag_tweet) {
            if (PR2 ‹ 141) {//Здесь не даем провалиться PR2 ниже 125
                TMR2ON = 0; 
                PR2 = 255;
            }

            TMR2ON = 0;
            PR2 -= 16;
            T2CON = 0x05;//после смены PR2-запускаем таймер
            CCP1CON |= 0x0F;
//Все действия согласно соответствующей документации.
}
Выше по коду PR2 инициализирован значением 255 до входа в функцию, где написана эта часть кода.

В MPLAB, при симуляции, подобного "варнинга" нет.
Ganinoff вне форума  
Непрочитано 10.11.2019, 20:17  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Proteus общие вопросы

может нуна TMR2 обнулять перед изменением периода счета?
и эта сначала включаем ШИМ, а потом включаем таймер.
а вообще приведите листинг асма.
DmitriyVDN вне форума  
Непрочитано 10.11.2019, 22:07  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от DmitriyVDN Посмотреть сообщение
сначала включаем ШИМ, а потом включаем таймер
Нет.
4. Establish the TMR2 prescale value and enable Timer2 by writing to T2CON.
5. Configure the CCP module for PWM operation
Миниатюры:
Нажмите на изображение для увеличения
Название: Снимок экрана (18).png
Просмотров: 0
Размер:	18.3 Кб
ID:	147200  
Ganinoff вне форума  
Непрочитано 10.11.2019, 22:48  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Пробовал обнулять таймер, не помогает.
В железе пищалка работает хорошо. Вопрос задал из любопытства. Ситуация не критическая.
А вот почему в окне "PIC CPU Variables" вообще ни как не видно переменных объявленных как
bit
Приходится создавать структуру с полями unsigned Bxxxx : 1; Это лишние телодвижения.
А переменные объявленные в "не стандартном размере"
uint24_t
Видно, но не отслеживаются их значения. Приходится засовывать их в Watch Windows, где их значения можно отследить выбрав "Data Types- Double WORD" отбросив в уме лишние отображаемые разряды.

Это беспокоит больше. Перерыл пол форума, ответа не нашел.
Ganinoff вне форума  
Непрочитано 11.11.2019, 12:51  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от Ganinoff Посмотреть сообщение
Нет.
шо нет? читайте референс мануал....
порядок инициализации ШИМ:
Миниатюры:
Нажмите на изображение для увеличения
Название: PWM.png
Просмотров: 0
Размер:	85.1 Кб
ID:	147219  

Последний раз редактировалось DmitriyVDN; 11.11.2019 в 12:54.
DmitriyVDN вне форума  
Непрочитано 11.11.2019, 12:59  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Proteus общие вопросы

только не понял, на кой менять период ШИМ , а не его заполнение
DmitriyVDN вне форума  
Непрочитано 11.11.2019, 14:12  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Сообщение от DmitriyVDN Посмотреть сообщение
читайте референс мануал
Да менял уже порядок включения, еще хуже, было 4ре варнинга подряд, а стало 8мь.
В даташите тоже написано буквами что шим включается после TMR2, а в листинге, совершенно верно, наоборот.

Сообщение от DmitriyVDN Посмотреть сообщение
на кой менять период ШИМ , а не его заполнение
А на той, что это пищалка типа детской игрушки, а не диммер. Для создание звука разной высоты. Получается трель типа "электронной свирели", или сверчка если изменить скорость.
Ganinoff вне форума  
Непрочитано 11.11.2019, 14:35  
Ganinoff
Частый гость
 
Регистрация: 10.11.2019
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ganinoff на пути к лучшему
По умолчанию Re: Proteus общие вопросы

Скважность там то же меняется, потому как CCPR1L не корректируется в момент изменения PR2. Что бы не было ее перебежки через "0" установлено ограничение
Код:
if (PR2 ‹ 141) {//Здесь не даем провалиться PR2 ниже 125
                TMR2ON = 0; 
                PR2 = 255;
            }
Это не дает пищалке, уйти в мышиный писк, в зону дискомфортных звуков, и не требуется коррекция CCPR1L(H).
Ganinoff вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по PROTEUS-у Advanced_LAMER Proteus 372 19.09.2021 01:20
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
Вопросы по работе с Proteus dosikus Proteus 510 20.12.2007 18:48
CAN BUS общие впечатления vasseff Микроконтроллеры, АЦП, память и т.д 7 20.06.2007 09:15
Вопросы по Си. Zemlyanov Proteus, KiCAD и другие ECAD 5 20.11.2006 15:36


Часовой пояс GMT +4, время: 19:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot