|
micro |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 32)
|
Nov 21 2008, 20:03
|
Группа: Участник
Сообщений: 5
Регистрация: 21-11-08
Пользователь №: 41 843

|
Ни в коем случае не учитесь программировать на Асемблере. Начинать лучше сразу с С. Почитать? Возмите книжку по С, pdf на любой контроллер с сайта www.microchip.ru и мануал компилятора (Hi-TECH или микрочиповский). Самая лучшая программа в качестве "Helloy Word" это бегущие огни.
|
|
|
|
|
Nov 22 2008, 16:13
|
Группа: Новичок
Сообщений: 2
Регистрация: 21-11-08
Пользователь №: 41 827

|
Цитата(mustelus @ Nov 22 2008, 00:25)  Здравствуйте госпада... Я ХОТЕЛ БЫ НАУЧИТЬСЯ ПРОГРАМИРОВАТЬ МИКРОКОНТРОЛЛЕРЫ НО К СОЖАЛЕНИЮ НА ДАННЫЙ МОМЕНТ НЕ ПРЕДСТОВЛЯЮ КАК ЕТО ДЕЛАЕТЬСЯ (ПРАКТИЧЕСКИ)... CКАЧАЛ НЕДАВНО IDE MPlab V8.15a НЕ МОГЛИ БЫ ВЫ ПОСОВЕТОВАТЬ МНЕ ЧЕГО НИТЬ ПОЧИТАТЬ ПО ЕТОЙ ПРОБЛЕМЕ (С ЧЕГО ВООБЩЕ НАЧИНАТЬ И С ЧЕГО ПРОДОЛЖИТЬ ) .............ЗАРАНЕЕ БЛАГОДАРЕН.................. Начинай с этого - Дейтел Х.М., Дейтел П.Дж. Как программировать на С. В инете полно ссылок. И доку на компилятор читай.
Сообщение отредактировал Типок - Nov 22 2008, 16:14
|
|
|
|
|
Nov 22 2008, 17:46
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(Purposeful @ Nov 21 2008, 23:03)  Ни в коем случае не учитесь программировать на Асемблере. Начинать лучше сразу с С. Ага. Зачем идти в первый класс, если двери пятого на замок не закрыты? Если сразу пойти в пятый, то в первый все равно придется вернуться. Ассемблер - родной язык PIC-ов (прошу прощения, перед теми кто пишет сразу в машинных кодах). Если автору поста еще интересно, то вот один из вариантов освоения: 1. Журнал Радио 2001 год - статьи А.С. Долгий про PIC16F84, ассемблер и работа с MPLAB IDE, контроллер старый, но сути это не меняет, написано доходчиво и доступно, альтернатива книга В.С. Яценков "Микроконтроллеры MicroCHIP. Практическое руководство". 2. Журнал Радио 2004 год - статьи А.С. Долгий про простые программаторы ftp://ftp.radio.ru/pub/2008/05/P&P.pdf3. Потом беритесь за Си - на первых порах лучше mikroC, он более дружественный к начинающим и имеет большую библиотеку и хороший Help (демо скачать можно здесь www.mikroe.com), потом при желании переходите на Hi-Tech.
|
|
|
|
|
Nov 22 2008, 18:43
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(tyro @ Nov 22 2008, 21:23)  Не знаю, будет ли полезной, но про мк и на русском. Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006 хттп://rapidshare.com/files/78378929/1146071003.rar.html Нормальная книга для начинающих, но описанный в ней компилятор CCS - не очень популярен, в основном для PIC16 и PIC18 широко используют Hi-Tech.
|
|
|
|
|
Nov 23 2008, 17:00
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
А на С++ можно програмить, если можно то подскажите какую нить IDE...
|
|
|
|
|
Nov 23 2008, 18:05
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(mustelus @ Nov 23 2008, 20:00)  А на С++ можно програмить, если можно то подскажите какую нить IDE... C++ это дальнейшее развитие языка ANSI С (который кстати изначально предназначался для программирования в ОС типа Unix) и предназначен для объектно-ориентированного программирования на ПК. В PIC нет таких ресурсов, чтобы оперировать объектами. Кроме того из-за ограниченных ресурсов микроконтроллеров не все копиляторы Си полностью выполняют требованиям стандарта ANSI C, куда уж тут С++. Да и не нужно это. Каждому свое. Может я в чем-то ошибся, но я не встречал компиляторов С++ для PIC контроллеров.
|
|
|
|
|
Nov 23 2008, 18:44
|
Частый гость
 
Группа: Новичок
Сообщений: 84
Регистрация: 22-09-05
Пользователь №: 8 854

|
Цитата(petrd @ Nov 23 2008, 21:05)  Может я в чем-то ошибся, но я не встречал компиляторов С++ для PIC контроллеров. Не знаю, насколько это C++, но тем не менее: BoostCpp
Сообщение отредактировал Adviser - Nov 23 2008, 18:45
|
|
|
|
|
Nov 23 2008, 19:27
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(Adviser @ Nov 23 2008, 21:44)  Не знаю, насколько это C++, но тем не менее: BoostCppДа, действительно С++, и классы есть. Значит, ошибался.
|
|
|
|
|
Nov 27 2008, 19:33
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Скажите, а как закачать код в сам микроконтролер, с MPLAB IDE никак не получаеться... Я подозреваю что существует какое то еще приложение... Подскажите плиз...
|
|
|
|
|
Nov 28 2008, 01:42
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477

|
Цитата(mustelus @ Nov 21 2008, 17:25)  Здравствуйте госпада... Я ХОТЕЛ БЫ НАУЧИТЬСЯ ПРОГРАМИРОВАТЬ МИКРОКОНТРОЛЛЕРЫ НО К СОЖАЛЕНИЮ НА ДАННЫЙ МОМЕНТ НЕ ПРЕДСТОВЛЯЮ КАК ЕТО ДЕЛАЕТЬСЯ (ПРАКТИЧЕСКИ)... CКАЧАЛ НЕДАВНО IDE MPlab V8.15a НЕ МОГЛИ БЫ ВЫ ПОСОВЕТОВАТЬ МНЕ ЧЕГО НИТЬ ПОЧИТАТЬ ПО ЕТОЙ ПРОБЛЕМЕ (С ЧЕГО ВООБЩЕ НАЧИНАТЬ И С ЧЕГО ПРОДОЛЖИТЬ ) .............ЗАРАНЕЕ БЛАГОДАРЕН.................. Если PICi всерьез, то лучше сразу приобрести PicKit2 (немного больше 1000 руб), но возможности большие. Можно, конечно начинать и с ассемблера, но лучше сразу с Си. Керниган и Ричи это основное , а для начала поищите в интернете книжку Андрей Богатырев. Руководство полного идиота по программированию(на языке Си). Есть еще форум http://www.microchip.su/ где помогут разобраться с HT-PICC.
|
|
|
|
|
Nov 29 2008, 21:25
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Я вот тут разбирался с MPASMом и что то не могу понять, есть такие термины: абсолютный код и перемещаемый... Расскажите пож-а в двух словах в чом смысл, для чего ети секции абсолютого и перемещаемого кода...
|
|
|
|
|
Dec 1 2008, 02:12
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477

|
Цитата(mustelus @ Nov 30 2008, 00:25)  Я вот тут разбирался с MPASMом и что то не могу понять, есть такие термины: абсолютный код и перемещаемый... Расскажите пож-а в двух словах в чом смысл, для чего ети секции абсолютого и перемещаемого кода...  Достаточно подробно это описано в даташите на MPASM. Это связано с переносом подпрограмм в разные проекты.
|
|
|
|
|
Dec 1 2008, 11:47
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Да, написано, но для чего ето вообще нужно не написано, лиш сказано что перемещаемый код ето код с предшествующей директивой CODE и все...
|
|
|
|
|
Dec 4 2008, 12:24
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Скажите пожалуйста, можно ли сохранить какие то промежуточные "данные" по ходу написания програмы без заранее зарезервированной ячейки какой либо памяти... \\\\\\\\\\\\\\\ var1 res 1 \ var1 res 2 \\ без етого var1 res 3 \ \\\\\\\\\\\\\\\\ CODE movff w,var1 movff porta,var2 . . . \\\\\\\\\\\\\\\\\\\\\\\\ СODE \\ movff w,0x0Ah \\ примерно вот так movff porta,0x0Bh \\ . \\ . \\ \\\\\\\\\\\\\\\\\\\\\\\\ Если можно, то с какого начального адреса начинаеться ета или ети области, и что за регистры общего назначения которые организованы в памяти данных (в data Sheet на Pic 18Fxxx не называют ни одного такого регистра)... СПАСИБО ЗАРАНЕЕ...
|
|
|
|
|
Dec 5 2008, 10:40
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Нуу начнем с того что, назовите хоть один по имени регистр общего пользования... (К примеру специальные: STATUS, FSR, PORTA.................., а общего ?????????????????????????????????) А вообще я имею ввиду то что при програмировании на asme обычно в сегменте данных директивами DB,DW,DD резервируют ячейки памяти (name1 DB (?)) для того, что б потом в них сохранять промежуточные значения каких то операций... Так вот можно ли обойтись без етих резервирований а по ходу написания скрипта взять и сохранить значение какого то регистра по какомуто адресу, ведь name1 ето кокой то адрес зарезервированый вначале програмы...
|
|
|
|
|
Dec 5 2008, 12:35
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(mustelus @ Dec 5 2008, 13:40)  Нуу начнем с того что, назовите хоть один по имени регистр общего пользования... (К примеру специальные: STATUS, FSR, PORTA.................., а общего ?????????????????????????????????) А вообще я имею ввиду то что при програмировании на asme обычно в сегменте данных директивами DB,DW,DD резервируют ячейки памяти (name1 DB (?)) для того, что б потом в них сохранять промежуточные значения каких то операций... Так вот можно ли обойтись без етих резервирований а по ходу написания скрипта взять и сохранить значение какого то регистра по какомуто адресу, ведь name1 ето кокой то адрес зарезервированый вначале програмы... А нету у регистров общего назначения имен. Вы можете себе представить ситуацию, что в компьютере с 2 Gb ОЗУ каждая ячейка имеет имя? Я вот не могу. Специальные регистры и регистры общего назначения представляют собой память одного типа (статическое ОЗУ), называемую памятью данных и расположены в одном адресном пространстве. В PIC 16 и 18 эта память разбита на банки. Регистры специального назначения (SFR) аппаратно-зависимы и имеют зарезервированные имена, и поэтому другого применения, кроме описанного в datasheet, у них нет. Регистры общего назначения (GPR) - это ячейки памяти данных, которые пользователь может использовать по своему назначению и имена он тоже назначает по своему усмотрению при написании программы. Адреса GPR, доступных для программиста указаны в datasheet. Теперь о резервировании - конкретно, то о чем Вы говорите делается при помощи директив ассемблера RES и UDATA , при помощи которых резервируется память и объявляются неинициализированные блоки данных.
|
|
|
|
|
Dec 5 2008, 14:01
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Спасибо, кое что понял... А скажите пожалуйста еще, правильно ли я понял: в микрах 16FXXX в каждом банке содержаться регистры общего и специального пользования а в микрах 18FXXX регистры специального пользования находяться в последних 125 байтах 15-го банка, а регистры общего в 0....15 банках памяти??? Я вот еще не понимаю для чего нужно размещать регистры спец-го наз-я (одни и теже) в нескольких банках памяти (для микров 16FXXX и ниже) ??? //////// Извеняйте, если вам кажуться ети вопросы глупыми, не занимался просто я етой областью ранее вот и приходиться все уточнять на 100% ////////
|
|
|
|
|
Dec 5 2008, 16:42
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(mustelus @ Dec 5 2008, 17:01)  Спасибо, кое что понял... А скажите пожалуйста еще, правильно ли я понял: в микрах 16FXXX в каждом банке содержаться регистры общего и специального пользования а в микрах 18FXXX регистры специального пользования находяться в последних 125 байтах 15-го банка, а регистры общего в 0....15 банках памяти??? Нечего гадать, надо смотреть в datasheet на конкретный контроллер. Цитата Я вот еще не понимаю для чего нужно размещать регистры спец-го наз-я (одни и теже) в нескольких банках памяти (для микров 16FXXX и ниже) ??? Вопрос к разработчикам, а я вижу так - при написании программ не надо заботиться о переключении банков при обращении к некоторым SFR, так как они доступны из любого банка, но это надо делать ОЧЕНЬ аккуратно. Цитата //////// Извеняйте, если вам кажуться ети вопросы глупыми, не занимался просто я етой областью ранее вот и приходиться все уточнять на 100% //////// Ответы на большинство вопросов в datasheet.
|
|
|
|
|
Dec 6 2008, 19:33
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(mustelus @ Dec 6 2008, 21:46)  Я вот и изучаю все по datasheet, но смутил меня тот факт что такое различие в организации памяти данных, там во всех банках а в етом только в последних 128 байтах, ведь если взять 12-й и тот же 16 микроконтроллеры то отличаються онитолько размерами етой памяти и дополнительными выводами и регистрами...  У продукции microchip хорошо прослеживаются приципы совместимости и приемственности, но слепо им следовать не стоит, иначе в один прекрасный момент выработанные стереотипы сослужат недобрую службу. Архитектура и система команд PIC12 и PIC16 практически одинакова, PIC18, можно сказать, дальнейшее развитие PIC16, в которое разработчики вложили лучшее от PIC16, убрали такой важный минус как страничная организация памяти программ, переработали ситему команд, расширили префирию, поработали над скоростью работы. А какой смысл начинающему читать и анализировать даташиты на разные PIC? Ведь у Вас наверняка в наличии один-два контроллера. Вот их и надо плотно изучать, а дальше просто искать отличия и дополнения. Я так думаю.
|
|
|
|
|
Dec 8 2008, 13:44
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837

|
Подскажите в чом дело, вот код на PIC18F452 vbanke EQU 0xF1 CODE: movlw 0x00 movwf TRISB ;настраиваем порт на вывод CLRF PORTB ;очистка защолки movlw 0x00 movwf ADCON1 ;настройка АЦП movlw b'0011' ;выбор банка памяти movwf BSR movlw b'1011011' movwf vbanke,1 ;сохраняем нейкое значение в переменной movwf PORTB,1 ;содержимое clrf vbanke return
Почему не сохраняеться значение b'1011011' в выбранном банке памяти, в выбранных банках памяти... Все работает только если игноривать регистр BSR... ...СПАСИБО....
|
|
|
|
|
Jan 2 2009, 17:27
|
Группа: Участник
Сообщений: 5
Регистрация: 2-01-09
Пользователь №: 42 879

|
Ассемблер - родной язык PIC-ов Полностью согласен с petrd!
Я тоже не имел даже представления что такое МК и как он работает. Начал с ассемблера, нашел "Мой первый проект на пике". Асм дает понять структуру МК, как он работает, все эти банки, периферия... В С все это делается компилятором за программиста, и я думаю если чтото не будет получаться, без знания архитектуры и работы МК (а Асм к машинному коду ближе чем С) будет тяжко. В СССР водителя помимо вождения, учили устройство автомобиля и его ремонт, обслуживание. Считаю это правильным.
|
|
|
|
|
Jan 3 2009, 09:22
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 27-06-07
Из: Беларусь, Гомель
Пользователь №: 28 752

|
Цитата Я ХОТЕЛ БЫ НАУЧИТЬСЯ ПРОГРАМИРОВАТЬ Я посоветую вам сделать таким образом, скачайте книгу Шпака, ссылка выше указана. Затем скачайте компилятор который указан в книге, обязательо скачайте протеус т.к. это просто великолепное средство для отладки кода. Конечно 100% вероятности он не даст да и для мигания светиками точность особо и не нужна. Скачайте МП-ЛАБ. И самое главное скачайте русскую версию даташита на камушек PIC16F628A. Вот когда это все будет у Вас, можно далее говорить о програмировании.
|
|
|
|
|
Jan 21 2009, 05:39
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 3-06-08
Пользователь №: 38 012

|
Цитата(mustelus @ Jan 20 2009, 23:08)  Нуу, вроде научился програмировать... Скажите, а где добыть datashet на более крутые камни чем 18-е, что то не нахожу в поисковике, только 18-е... Спасибо... Все находится на сайте www.microchip.com
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|