![]() |
Quote:
|
Quote:
|
И ничего сложного там нет . Все грабли уже обсосаны давным-давно.
Применительно к Base и Midle range : банки, страницы, RMW . |
Quote:
|
Quote:
|
И начну я пожалуй с самого простого микроконтроллера, на мой взгляд PIC16F84. Я его считаю, как бы отправной точкой, поняв его можно и более сложные изучать.
Вот и datasheet на него скачал: datasheet на PIC16F84, там на стр.8 есть прекрасная табличка, как в нём банки расположены, всего два банка Банк0 и Банк1, и описание слева как переключать 5-й бит регистра STATUS переключает банки 0 - нулевой банк, 1 - первый банк. Как-то проще всё же в ассемблере, открываешь datasheet хоть и английский, а я с ним совсем не дружу без переводчиков, но даже из картинок становится понятно, что да как. |
Code:
banksel TRISA |
Quote:
|
krotan, http://www.pic24.ru/doku.php/osa/art...asm_formatting
И уже приводил ссылку , уроки - http://www.gooligum.com.au/tutorials.html |
Quote:
|
Viktor2312, купи ардуину, не мучайся!
|
Quote:
Quote:
Есть достойные альтернативы, такие же простые, но с б'ольшими возможностями и производительностью, дешевле и более доступные в продаже. Например PIC16F628A |
Quote:
Quote:
|
Quote:
Если ТС вместо этого сделает его на ПИКе, то принесёт огромную пользу себе и людям! |
Quote:
Quote:
Quote:
Quote:
С достоваемостью проблем не наблюдал пока, можно заказать хоть 100, хоть 1000 штук, нет проблем с их доступностью, даже у нас в магазине они есть в наличии. Quote:
Quote:
|
Viktor2312, Не верно ты мыслишь.
Надо взять один из линейки с полным фаршем и пару тройку дешевых но с функционалом нужным тебе . пЫк 84 это даже не гАвно маонта, это ее хуже . Если все таки решил на 16ых зависнуть - вот тебе список с дип корпусами ( я бы смд взял) PIC16F887-I/P PIC16F1459-I/SO PIC16F1829-I/SO PIC16F630-I/P PIC16F690-I/P PIC12F683-I/P Здесь цены самые вкусные http://trt.ru/Stock.php?Manf=3 И крайне обязательно pickit2, или оригинал или клон китайский - но его допиливать придется , но не особо дорого. ---------- Post added at 11:24 ---------- Previous post was at 10:51 ---------- Quote:
Во первых ресурсов на пЫк16 маловато да и дорого, во вторых программатор . В итоге есть шанс быть посланным людьми. :biggrin: Идеальный вариант STМ32 в плане стоимости и прошивании, но есть нюансы с ресурсами. |
Quote:
Quote:
Можно конечно, например параллельно изучать два микроконтроллера, например, для себя, для души 84-й как один в списке: и пару тройку дешевых но с функционалом нужным тебе, но кто меня этому навороченному: с полным фаршем будет обучать или направлять в обучении? это вопрос, так как сам я такой навороченный и за год не осилю. И всё же интересно, если выбирать из этого списка, но только в DIP, навороченный, то какой лучше? Раз уж выбирать самый нафаршированный. Quote:
И вы там выше написали две команды, над регистром TRISA, к чему? Я так и не понял, может объясните, что имели в виду и для чего? |
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
|
А будет ли, на фоне изучения, спроектировано какое нибудь устройство ? :) помимо светодиодной мигалки
|
Quote:
Quote:
Я для начала, после всяких мигалок и свистелок, хотел попробовать реализовать для себя, коммутатор входов для УМЗЧ на PIC16F84A, для пробы. |
Quote:
|
А я с i8035 заморочился :) А вы говорите пики, древность... )))
|
Quote:
Они говорят, что я выбрал для изучения слишком древний ПИК, А я вот не понимаю, зачем мне брать супер навороченный, в котором полно всевозможных встроенных модулей и при этом в 95% устройств, которые я возможно разработаю, 90% этих встроенных модулей применяться не будет. PIC-микроконтроллеры - это настоящее, и будущее. |
Quote:
К примеру i2c , SPI,ADC,UART ... Quote:
|
Все мы куда-то не успеваем :)
|
Quote:
Quote:
То есть современные новые пики, которые будут выпускаться в 2014 году, это старые пики, железная логика. И вообще превратили тему из изучения PIC микроконтроллеров во флейм. Если кто-то хочет изучать, разбираться, милости просим в эту тему, а если пофлеймить и поспорить, идите во флейм. Семь страниц ни о чём. Нет взять и написать маленькую статеечку, например "Как пользоваться MPLAB v8.92 для начинающих", нет же проще пофлеймить, думать не нужно утруждать себя тоже. |
Quote:
Я дал ссылку на уроки , где в том числе и мЫПЫлаб расписана ... http://www.gooligum.com.au/tutorials.html http://www.gooligum.com.au/tutorials...C_Base_A_1.pdf |
Quote:
Не, я конечно понимаю, чем рыть суть, можно взять stm32 о пицот ногах на несколько гигагерц, поднять на нем линупс, запулить туда питон и на нем моргать лампочкой. Да. А можно то же самое сделать на пике, а в некоторых случаях на 2-3 микросхемах логики. Только тут уже требуется немного подумать. |
Quote:
Кстати вспомнился Карабельников, нашёл, всё описывает максимально понятно, поэтому его я советую начинающим, но только ни как истина в последней инстанции, если что-то не понятно, то можно его почитать, понимание приходит сразу. Хотя он очень мутарно, долго и нудно пишет, военщина, что с него взять. Quote:
Продолжу изучать сам потихоньку... ---------- Post added at 15:52 ---------- Previous post was at 15:46 ---------- Чтобы нормальный русский человек нормально воспринимал информацию, и хоть что-то в ней понимал, она должна быть представлена на родном языке в большей своей части, а иначе это пустая трата времени. Вот например микроконтроллер PIC16F690, чтобы понять, что в нём есть и насколько он отличается от PIC16F84A нужно иметь нормальное описание его внутреннего устройства, на русском языке, а не на тарабарском. Например такое: PIC16F631/6xx/690_rus. |
Quote:
И здесь действительно "требуется немного подумать" - у нас разные уровни и точки зрения. Я смотрю на пЫк , как на пройденный этап , где уже нечего ловить даже в контексте DIY. Вы же, как восторженные новички, только еще примеряющие шкурку пЫк... Viktor2312, осмелюсь напоследок, так как удаляюсь, ибо действительно не вижу смысла помогать тому кто этого не хочет и решил самостоятельно собрать всевозможные грабли, уже пройденные другими, дать пару советов. Карабельников это путь в некуда, бесполезная трата времени, так же как и многие другие "писатели" . Намного полезней - да же с переводчиком , изучить тот материал что дал я. Всего наилучшего ... |
Quote:
MPASM pic16 pic16f62x pic16f87x Дешёвые pic16-микропроцессоры в dip-корпусе с интерфейсами и без в порядке возрастания количества i/o: PIC16F54-I/P 69 руб PIC16F84A-04/P 100 руб PIC16F628A-I/P 71 руб USART PIC16F690-I/P 100 руб SPI/I2C/USART PIC16F818-I/P 99 руб I2C/SPI PIC16C55-XT/P 89 руб PIC16C57C-04I/SP 93 руб PIC16F876A-I/SP 146 руб I2C/SPI/USART PIC16C73B-04I/SP 62 руб I2C/SPI PIC16F883-I/SP 82 руб I2C/SPI (цены по прайсу терраэлектроники, не сочтите за рекламу) |
Для тех кто хочет изучать семейство PIC24 добавлю эту книжечку сюда, сам попробовал, всё отлично получается.
Магда Ю. С. Микроконтроллеры PIC. Архитектура и программирование. (2009г.) Скачать http://img-fotki.yandex.ru/get/6727/...ebba8611_M.jpg В книге рассматривается широкий круг вопросов, связанных с практическим применением популярных 16-битных микроконтроллеров PIC24 в системах обработки данных и управления оборудованием. Приводятся многочисленные примеры программирования несложных аппаратно-программных систем обработки аналоговой и цифровой информации с применением периферийных модулей микроконтроллеров PIC24F. В контексте разработанных примеров приводятся необходимые сведения из теории, что способствует лучшему пониманию материала книги. Все приведенные в книге аппаратно-программные проекты разработаны и проверены на отладочном модуле Explorer 16 Development Board фирмы Microchip и могут служить основой для создания собственных проектов. |
Теория_001
Теория_001
Итак, давайте не будем тянуть кота за яйца, а займёмся вплотную и серьёзно изучением PIC микроконтроллеров среднего семейства. Основной упор, я буду делать на микроконтроллер PIC16F84A, так как с точки зрения программирования все устройства с одним и тем же ядром полностью идентичны. Те небольшие аппаратные различия, которые имеются, не влияют на общую картину, они заключены в большем объёме поддерживаемой памяти или в построении схем сброса. Отличия более продвинутых моделей заключаются в дополнительных возможностях ввода/вывода, например во включении, в состав микроконтроллера аналого-цифрового преобразователя или аналогова компаратора и 16 – битного таймера/счётчика, однако существует много идентичных модулей. Память Рассмотрим память нашего микроконтроллера. Вся память нашего микроконтроллера разделена на память программ, и память данных. И является энергонезависимой, то есть записанная информация сохраняется и после отключения питания. Соответственно программа, которая исполняется при работе микроконтроллера, записывается в память программ. Для микроконтроллера PIC16F84A, например, объём памяти программ составляет 1024 слова, обратите внимание, именно слова, а не байта. Так как разрядность памяти программ составляет 14 бит. Каждая ячейка памяти программ может содержать только одну команду, соответственно максимальное количество команд, которое может содержаться в программе 1024, для микроконтроллера PIC16F84A. Каждая ячейка имеет свой адрес, выставляемый счётчиком команд на шину адреса памяти программ. Условный внешний вид памяти программ представлен на рис. 1. Память данных. В отличие от памяти программ, память данных состоит из ячеек, которые содержат 1 байт (восемь бит) данных. Её ещё называют EEPROM память данных. Байты, хранящиеся в памяти данных, предназначены для их считывания в стандартные 8 – битные регистры. Данные из этих регистров также могут быть записаны в EEPROM память данных, то есть, может быть организован обмен данными между памятью данных и регистрами. Шина адреса и данных, памяти данных совершенно независимы от одноимённых шин памяти программ, что позволяет одновременно обращаться к обеим областям памяти. Условный внешний вид памяти программ представлен на рис. 2. Память данных нашего микроконтроллера можно представить в виде картотечного шкафа, который в данном случае имеет два отделения (банка). Внутри каждого отделения имеется некоторое количество папок, или файлов, так же можно сказать регистров, каждый из которых содержит восемь битов данных. Вот, пожалуй, и всё, что нам нужно знать о памяти на первом этапе, хотя сразу предупрежу, если разбираться более детально, то там всё намного сложнее, но для понимания общей сути и написания программ, на данном этапе этой информации вполне достаточно. И ещё добавлю, всё, что я пишу, это моё ИМХО, в чем-то я могу и ошибаться, поэтому критика приветствуется. |
Quote:
Quote:
Quote:
Я выдаю его так, чтобы я сам потом мог зайти глянуть прочитать и быстро всё понять и осмыслить, если что-то забылось, а не лазить по сотням ссылок. В общим я продолжу... |
Продолжайте, с удовольствием читаю.
|
Теория_002
Продолжим.
Теория_002. Теперь, когда мы немного ознакомились в общих чертах с памятью нашего микроконтроллера, но ещё не перешли к изучению страшных и ужасных регистров. Нужно немного остановиться на общих вопросах, чтобы прояснить некоторые детали. В Теория_001 упоминался счётчик команд. Поэтому давайте его немного повнимательнее рассмотрим. Счётчик команд. Команды обычно располагаются в памяти программ последовательно, а счётчик команд РС является обычным счётным регистром, определяющим место положения текущей команды. Этот суммирующий счётчик иногда называют указателем команд. Так, например, если команда простая, то счётчик просто инкрементируется (инкремент – увеличение на единицу), если же и далее в программе не встречаются команды условного или безусловного перехода, то РС так и будет в дальнейшем после исполнения очередной команды инкрементироваться, увеличивая своё содержимое на единицу. И таким образом, переберёт все ячейки памяти последовательно. Но программы, не имеющие условных или безусловных переходов или обращений к подпрограммам, встречаются крайне редко. Поскольку счётчик команд подключён через внутреннюю шину данных, то можно использовать АЛУ для управления счётчиком команд и изменения предопределённой последовательности исполнения команд. Счётчик команд имеет разрядность 13 бит и состоит из двух регистров. Называются они PCL младший и PCH старший. В младшем регистре PCL находятся младшие 8 битов адреса команды, а в старшем регистре PCH находятся остальные 5 битов адреса. Старшие 3 бита регистра PCH не используются. Регистр PCL находится по адресу 02h и на него можно воздействовать непосредственно, а воздействие на содержимое регистра PCH происходит косвенным образом, через регистр PCLATH находящийся по адресу 0Ah. Для простоты рассмотрения, можно представлять РС как целый 13 битный регистр и что при выполнении очередной команды происходит его инкремент, то есть после переполнения PCL происходит инкремент PCH, но за исключением процедуры вычисляемого перехода, которой сейчас мы не будем касаться. Таким образом, как мы видим волей не волей, но мы коснулись регистров специального назначения РСН. Вот те два регистра, которых мы коснулись из всего их разнообразия: PCL (02h) Регистр PCL расположенный по адресу 02h, физически является младшим байтом счётчика команд. Этот регистр доступен как для чтения, так и для записи. PCLATH (0Ah) Регистр PCLATH расположенный по адресу 0Ah, является регистром-защёлкой для хранения данных, которые должны быть загружены в старший байт счётчика команд. Регистр PCLATH используется только в качестве буфера, поэтому значение, считанное из него, не будет соответствовать текущему состоянию старшего байта счётчика команд. Так как старший байт счётчика команд имеет только 5 бит использующихся, то соответственно не сложно определить и максимальный объём памяти программ, к которому может адресоваться РС, это 8192 слова. Но не во всех микроконтроллерах используются все 5 бит. Например, в микроконтроллере PIC16F84A используется 10 бит, и как уже говорилось выше, его объём памяти составляет 1024 слова. А, например, в микроконтроллере PIC16F877 задействованы все 13 бит и соответственно памятьпрограмм имеет объём 8192 слова. Или же PIC16F628 в нём задействовано 11 бит и объём памяти программ его составляет 2048 слов. Теперь давайте немного подробнее рассмотрим случай, когда нам непосредственно из программы необходимо изменить содержимое счётчика команд РС с наглядными рисунками, для большего понимания. http://img-fotki.yandex.ru/get/9829/...72484e0_XL.jpg Теория_002_рис_001 Для непосредственного изменения содержимого РС, напрямую доступен младший байт через регистр специального назначения PCL. А для изменения всех 13 бит требуется дополнительный регистр. Регистр-защёлка старшего байта PCLATH не является в действительности старшим байтом РС, а служит в качестве буфера. Изменение содержимого регистра PCLATH не влияет на старший байт счётчика команд, однако одновременно с записью в регистр PCL новое значение PCLATH загружается в старший байт 13-битного счётчика команд. Таким образом, все 13 бит счётчика команд обновляются одновременно. Осталось только добавить, что при подаче питания на микроконтроллер и его сбросе счётчик команд очищается. То есть, первая выполняемая команда всегда находится по адресу 0000h. Этот адрес называется вектором сброса. |
| All times are GMT +4. The time now is 00:04. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.