29.05.2012, 17:11
|
|
Временная регистрация
Регистрация: 16.04.2012
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Proteus общие вопросы
Как я понял, ПЛИС это набор лог. элементов, специальным языком соединяются и получается сложная система.
|
|
|
|
29.05.2012, 17:15
|
|
Временная регистрация
Регистрация: 16.04.2012
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Вы хотя бы книжку что-ли какую научно-популярную прочли, термин "непрерывно" тут просто неуместен, равно как и по отношению даже к тому компьютеру с которого вы набрали это предложение. На хрена тогда компьютерный бог придумал систему прерываний?
|
Думать контроллеру разрешать в перерывах динамической индикации ?
|
|
|
|
29.05.2012, 17:28
|
|
Временная регистрация
Регистрация: 16.04.2012
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Proteus общие вопросы
Вы простите меня за тупые вопросы, просто дуб я. Свосьмого класса(больше года) занимаюсь электроникой аналоговой, пару месяцев назад у меня появился проотеус, и я стал цифрами интересоватся, но еще дуб дубом, а обротится только на форруме могу, знакомых чтоб шарился в электронике нет.
|
|
|
|
29.05.2012, 19:56
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Роман Ефимов
|
Что будет если в программе несколько бесконечных циклов?
|
А вообще любая программа работает сплошь на бесконечных циклах. Если цикла нет, то программный счетчик доходит до последнего адреса памяти программ и переходит (по логике работы кАнтрАллера) к нулевому адресу. И вот с нуля снова и начинает - инициализация, настройка там всякая - и пошло дальше до конца.. Можно и так, только вот накуй, а? Если в контроллере памяти, например, на 32 тыс. слов, а занято только 30 слов - то по-о-ока-а-а программный счетчик досчитает до конца... Ипическая сила, звездолет трахтенберга можно отчебурить.
Поэтому, главное, чтобы были условия перехода из одного цикла в другой и обратно.
Например, по условию какого-либо события извне.
Код:
|
Cycle_1:
nop
nop
btfss PIR1, CCP1IF
goto Cycle_1
Cycle_2:
btfss INTCON, TMR0IF
goto Cycle_2
Cycle_3:
movlw .3
addwf TESTREG
btfss STATUS, Z
goto Cycle_3
goto Cycle_1 |
(домашнее задание тебе - сам проследи за порядком выполнением такого кода)
Сообщение от Роман Ефимов
|
форруме
|
В Древней Греции мульен лет тому назад был такой место - они тама собирались и болтали. Только писали его с одной буквом "Р"...
Сообщение от Роман Ефимов
|
Свосьмого класса
|
Да пилять, а русский изык ты ф школе с какого класса изучал? Йибиться сердце перестало, да когда ж школота снова станет грамотротной, хотябы такой, как мы раньше в школьные годы?
Сообщение от Роман Ефимов
|
специальным языком
|
Да обычным языком.. Послюнил и соединил. Загугли в инете. В Википедию зайди, почитай. Только не надо переспрашивать тут. Да, да, это ПРОГРАММИРУЕМАЯ ЛОГИКА, состоит из набора фундаментальных логических элементов типа И, ИЛИ, И-НЕ, ИЛИ-НЕ, НЕ... Прожиганием перемычек при программировании из простых элементов строятся более сложные. В отличие от контроллеров, ПЛИС НЕ ИМЕЕТ собственных тактовых генераторов, не имеет ядра, оперативной памяти, набора команд. Нихрена нету там в ПЛИСе. Ну никуяшеньки.
Открою секрет - кАнтраллер - это тот же набор примитивных логических элементов. Только соеденены они в определенном порядке и имеют ааагромную кучу возможностей быстрого переконфигурирования внутренних соединений. Как? Да очень просто - переподключаются они теми же примитивными логическими элементами. Сигналы переподключений приходят из памяти контроллера. Именно туда ты записываешь свою созданную программу.
У кАнтрАллера PIC - лишь один счетчик команд, лишь одно арифметическое устройство. Поэтому три команды за раз выполнять он не умеет. Да и до недавнего времени (когда ты еще писался в штаны) даже компутеры могли выполнять только одну операцию за раз - это были одноядерные процессоры. Слышал о таких?
Сообщение от Роман Ефимов
|
и я стал цифрами интересоватся,
|
Окей, окей, молодой человек, а ты уже разобрлся с базовыми логическими элементами типа И, ИЛИ, И-НЕ, ИЛИ-НЕ, НЕ, Ислкючающее-ИЛИ (AND, OR, NAND, NOR, NOT, XOR) ?? Не разобрался??? А ну марш в Википедию, и чтоб не появлялся тут с вопросами про кАнтрАллеры, не выучив базового урока!!!!
Последний раз редактировалось Bumbarra; 29.05.2012 в 20:07.
|
|
|
Сказали "Спасибо" Bumbarra
|
|
|
29.05.2012, 20:15
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Не нравится SPI? Ставим MCP23008 для добавки каждых 8-ми бит или MCP23017 для добавки каждых 16 с интерфейсом I2C.
|
Halex07 , ну и садюга же ты Афтор сломается уже на попытке отыскать рестарт-бит.
Афтору - есть решения и попроще Расширитель с параллельным вводом-выводом Intel 82C55A, есть в протеусе в стандартной поставке - 8255A называется.
Последний раз редактировалось Bumbarra; 29.05.2012 в 20:24.
|
|
|
Сказали "Спасибо" Bumbarra
|
|
|
30.05.2012, 08:46
|
|
Временная регистрация
Регистрация: 16.04.2012
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Proteus общие вопросы
Сообщение от Bumbarra
|
Окей, окей, молодой человек, а ты уже разобрлся с базовыми логическими элементами типа И, ИЛИ, И-НЕ, ИЛИ-НЕ, НЕ, Ислкючающее-ИЛИ (AND, OR, NAND, NOR, NOT, XOR) ?? Не разобрался??? А ну марш в Википедию, и чтоб не появлялся тут с вопросами про кАнтрАллеры, не выучив базового урока!!!!
|
С логическими элементами вроде разобрался.
С русским правда проблемы.
Начал в жизни(не виртуально) делать такую штуку, чтобы был набор логических элементов, байт памяти, еще кое-что, чтобы это все соеденялось быстро, бес пайки.
|
|
|
|
31.05.2012, 20:12
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: Proteus общие вопросы
Ну ладно, если уж Роман 9-классник и чего-то старается - это похвально Все лучше, чем будет балду гонять.
К вопросу о том, как можно организовать несколько циклов. В частности, как увязать и динамическую индикацию, и прием информации извне, и еще че-нить. Ну, кончено, с прерываниями то это выйдет красивше, но начинающему сразу парить мозг прерываниями... Всё помаленьку, потихоньку, от простого к сложному.
Во вложении - просто пример такой организации. Проект в протеусе с исходником на ассемблере (ну я уж не знаю, на каком языке ты начал учиться) и пояснения по каждой строчке в комментариях исходника.
После старта контроллера выполняем инициализацию, то есть начальную настройку портов, регистров, всяких там модулей, чего потребуется нам.
Затем, строим циклы по принципу их вложенности - мелкие короткие циклы вложены в более длинные. Самый большой, главный цикл - он содержит все вложенные циклы и выполняется длительное время. В главном цикле - все то, что мы хотели сделать - и прием информации извне, и работу динамической индикации, и че-нить еще постороннее.
Цикл динамической индикации - полный цикл поочередногоо включения каждого разряда. В перерывах между переключениями разрядов и сменой информации все разряды должны быть погашены, чтобы не было наползания разрядов друг на друга.
Длительность свечения каждого разряда можно задать и программно циклом ожидания, то есть, выполнения простого счета в регистрах. либо в это время, пока светится один разряд, можно выполнять какие-то другие посторонние операции. А можно и использовать аппаратные возможности счета - Таймеры. Например, TMR0, настроив его предделитель на требуемый период счета. Таймер будет считать от 0 до 255 за время, определенное предделителем и часторой контроллера. В этом случае остается еще больше возможностей и свободного времени для выполнения каких-то других задач в то время, пока считает таймер до переполнения. Но длительность посторонних задач не должна превышать оставшееся время до переполнения таймера.
Когда таймер будет переходить из значения 255 в 0 (переполнение), установится специальный флаг TMR0IF в регистре INTCON - вот установку этого флага мы и ожидаем, проверяя бит TMR0IF.
Если бы были разрешены прерывания от таймера0, то контроллер бы перешел на обработку прерываний, но нам сейчас прерывания нафик не нужны.
В самом большом цикле сделан прием информации извне. На контроллере PIC16F877A есть ведомый параллельный порт (PSP), вот его и используем. По логике работы порта, когда на управляющей линии приходит положительный фронт сигнала, то устанавливается флаг принятой информации - PSPIF. Обнаружив его, читаем то, что оказалось на входах порта Д.
Для того, чтобы сделать циклы красивыми, используем возможности косвенной адресации - регистры FSR и INDF. В FSR хранится адрес того регистра, к которому будем обращаться через вспомогательный регистр INDF. То есть, указав в программе movwf INDF , мы поместим значение в физический регистр, адрес которого указан в содержимом регистра FSR. Изменяя содержимое регистра FSR, будем изменять адреса физических регистров, к которым обращаемся командой, например movwf INDF . Это позволит красиво оформлять циклы.
На практике сторить подобные вложенные циклы удобно не с самого крупного, а с одного из более мелких, потом, по мере написания, можно добавлять циклы как внутрь, так и наружу.
Те события, которые требуют более частого выполнения, удобно помещать внутрь самого короткого цикла, а те, что выполняются реже - в более длинные циклы.
Например, прием информации извне и ее преобразование можно поместить в короткий цикл, а опрос клавиатуры - в самый длинный цикл.
Последний раз редактировалось Bumbarra; 31.05.2012 в 20:31.
|
|
|
Сказали "Спасибо" Bumbarra
|
|
|
01.06.2012, 09:37
|
|
Временная регистрация
Регистрация: 16.04.2012
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Proteus общие вопросы
Спасибо за ЦУ.
Изучаю язык c.
Вот еще занимательная штука #difine, очень помогает.
|
|
|
|
01.06.2012, 18:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.02.2012
Сообщений: 5,803
Сказал спасибо: 827
Сказали Спасибо 2,082 раз(а) в 1,493 сообщении(ях)
|
Re: Proteus общие вопросы
Роман Ефимов, Добрый день Скачайте прогу МУЛЬТИСИМ 12. устанавливается она легко без кряков.руссификатор имеется. И занемайтесь цифровой темой. ПРИБОРНАЯ ЧАСТЬ в проге богатейшая ставится осциллограф --тут же граффик без
всяких дополн. установок. ВОТ С МИК-- КОНТРОЛЛЕРАМИ не знаю. ими не занимаюсь.
Конечно прога ПРОТЭУС навароченная в элл. базе. и дитташит почти к каждой мик- ме при желании
можно выдернуть из ин- та. НО в изм. приборах отстала единственный реальный осцилограф вернее вид его. кстати ваттметра не не шел. ПРОТЭУС прога замечательная. сколько схем в ней собрал
но вот с измерительными приб. не очень.
для сравнения в МУЛЬТИСИМЕ ставиш пробник. цепляеш за любую часть схемы и результат по всем
необходимым параметрам.
С уважением ЦИФРОВИК какие вопросы будут по мультисиму12 обращайся
Последний раз редактировалось цифровик; 01.06.2012 в 21:10.
|
|
|
|
01.06.2012, 19:34
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Роман Ефимов
|
Вот еще занимательная штука #difine, очень помогает.
|
Вот только имейте ввиду, что компьютер не человек и орфографических ошибок не прощает. Правильно #d Efine, буд Ите п Исать с Аши Пками программы, намучаетесь.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:38.
|
|