реклама на сайте
подробности

 
 
8 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> pic12f675, c чего начать.
swagger
сообщение Jul 2 2009, 07:57
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 18-01-08
Из: Moscow
Пользователь №: 34 201



Примерно полторагода назад начал программировать котроллелеры, сначала был PIC16F876A и асм. Вроде пока проекты были маленькие и можно было все держать в голове все было ок, но как только появились два уарта, память и часы внешние отладка стала напоминать китайскую пытку. Промаявшись несколько недель, решил написать на С. Сначала проработал Шпака, потом начал ваять маленькие примерчики из хелпа к компилятору. За полторы недели написал модбас устройство под себя и уарт програмный ( правда при помощи страших товарищей). Могу сказать ИМХО дял больших проектов токлько С, для маленьких годится и асм. Тут каждый выбирает для себя сам.
Также мне кажется надо выбирать инструменты для реализации проекта не только из критерия привычности, но и из соотношения скорости/цены.
Плюс знания АСМ ксати в том что он дает знание архитектуры контрллелара, для написания более компактного кода на С.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 7 2009, 11:14
Сообщение #47


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



как это понять - чета ничего не понимаю
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jul 7 2009, 11:59
Сообщение #48





Guests






А что конкретно не понятно? По моему, все очевидно.

P.S. Какой PIC?
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 7 2009, 12:07
Сообщение #49


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(@Ark @ Jul 7 2009, 15:59) *
А что конкретно не понятно? По моему, все очевидно.

P.S. Какой PIC?

тот который в теме. Не понятко как мнемоника меняется компиллятором в смысле один регистр на другой и два банка переключаются как то не переключаемо???

хотя

#define Bank0 0x00
#define Bank1 0x80
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jul 7 2009, 12:33
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Herz @ Jun 29 2009, 12:29) *
А на мой взгляд - лучше всё делать на С. И что, всё сначала?
Вообще-то вопрос ASM vs C - это вопрос в значительной мере религиозный если не конкретизирована задача. И периодически возникающий холивар на эту тему - тому доказательство. По-поводу простоты освоения embedded С. Посмотрите, сколько на форуме вопросов именно по специфическому на конкретном МК применению С (распределение переменных в нужной памяти, сложные обработчики превываний итп)
Вы сильно демонизируете сложность написания прог на ASM. Если мозги заточены под ASM, то скорость написания и отладки программ сопоставима (примеры с мегабайтами откомпилированного кода и мегабайтами многомерных массивов типа double не рассматриваем - это не для pic12). Основная же проблема ASM'a - это проблема с передачей проекта другому программисту. В данном топике это не проблема, равно как быстрый перенос кода на "все, что шевелится".Лучшим явлется тот инструмент, котрым хорошо владеешь. Мастер обыграет новичка в теннис даже взяв вместо ракетки сковородку.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jul 7 2009, 12:37
Сообщение #51





Guests






Адреса исходных регистров и замененных совпадают в пределах банка. Поэтому и команды обращения к ним будут абсолютно одинаковы. Исполняемый код не содержит информации о выборе банка. А результат выполнения команды (т.е к какому из регистров реально будет обращение) зависит от текущего выбора банка.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 7 2009, 12:51
Сообщение #52


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



я понимаю, что программный продукт когда бесплатный - то он не может быть качественным. И соглашусь что с точки зрения компиллятора эти регистры имеют одинаковый адрес. И что такая кривизна во всех версиях мп-лаба????

Банк то почему не меняется?

BANKSEL Bank1 ; BANK1

--------
banksel Bank0 ; change back to PORT memory bank
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jul 7 2009, 13:17
Сообщение #53





Guests






Насчет МП-лаба я Вам не советчик, так как им давно не пользуюсь...

По поводу банков. Регистр STATUS проецируется во все банки на один и то же адрес. Кстати, некоторые другие регистры тоже. Поэтому при обращении к ним можно не обращать внимания на текщий выбор банка.

Вообще, раз взялись за PIC-и, то рекомендую вам сразу прояснить для себя ряд вопросов, о которые Вы неизбежно будете "спотыкаться". А именно:

- изучите распределение регистров по банкам для конкретного PIC-а, и обратите внимание на регистры, которые проецируются сразу на несколько банков;

- разберитесь как формируется физический адрес операнда (регистра) при выполнении команд и обратите внимание на отличия при косвенном обращении к регистрам (через FSR); посмотрите как формируется адрес вызова и возврата из подпрограмм и прерываний, а также при переходах и прямой модификации программного счетчика.

- изучите типовую схему входного/выходного порта PIC-а; как происходит чтение и запись с внешних выводов и чем она отличается от чтения/записи в обычные регистры;

- в чем отличия при работе с выводами настроенными только на чтение или на чтение/запись, а также, при аналоговом и цифровом режимах работы портов.

P.S. Не торопитесь сразу программировать, попробуйте сначала разобраться хотя бы с перечисленными вопросами. В последствии, сэкономите массу времени.
Go to the top of the page
 
+Quote Post
xemul
сообщение Jul 7 2009, 15:00
Сообщение #54



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(rv3dll(lex) @ Jul 7 2009, 16:51) *
Банк то почему не меняется?

BANKSEL Bank1 ; BANK1

--------
banksel Bank0 ; change back to PORT memory bank

BANKSEL - не более чем макрос, который раскручивается в соответствующую последовательность комманд
Для pic12f675
banksel Bank0 == bcf STATUS, 5
banksel Bank1 == bsf STATUS, 5
т.е. дергается бит RP0 в SFR STATUS.
Если бы банок было больше, было бы больше и bcf/bsf (для битов RP1, RP2,...smile.gif)
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 8 2009, 04:12
Сообщение #55


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(xemul @ Jul 7 2009, 19:00) *
BANKSEL - не более чем макрос, который раскручивается в соответствующую последовательность комманд
Для pic12f675
banksel Bank0 == bcf STATUS, 5
banksel Bank1 == bsf STATUS, 5
т.е. дергается бит RP0 в SFR STATUS.
Если бы банок было больше, было бы больше и bcf/bsf (для битов RP1, RP2,...smile.gif)


понял просто посмотрел, что команды разные, после 51 ассемблера дико становится((((
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 8 2009, 05:57
Сообщение #56


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



скачал мрлаб 8 33 вроде уже можно работать
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 8 2009, 07:06
Сообщение #57


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(xemul @ Jul 7 2009, 19:00) *
BANKSEL - не более чем макрос, который раскручивается в соответствующую последовательность комманд


Где поискать расшифровку командами этого мактоса и всех остальных, если они есть а также
строки ???

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _CPD_OFF
Go to the top of the page
 
+Quote Post
xemul
сообщение Jul 8 2009, 07:30
Сообщение #58



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(rv3dll(lex) @ Jul 8 2009, 11:06) *
Где поискать расшифровку командами этого мактоса и всех остальных, если они есть а также
строки ???

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _CPD_OFF

"...\Microchip\MPASM Suite\hlpMPASMAsm.chm"
Go to the top of the page
 
+Quote Post
Herz
сообщение Jul 8 2009, 08:55
Сообщение #59


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(vvs157 @ Jul 7 2009, 14:33) *
Вообще-то вопрос ASM vs C - это вопрос в значительной мере религиозный если не конкретизирована задача. И периодически возникающий холивар на эту тему - тому доказательство. По-поводу простоты освоения embedded С. Посмотрите, сколько на форуме вопросов именно по специфическому на конкретном МК применению С (распределение переменных в нужной памяти, сложные обработчики превываний итп)
Вы сильно демонизируете сложность написания прог на ASM. Если мозги заточены под ASM, то скорость написания и отладки программ сопоставима (примеры с мегабайтами откомпилированного кода и мегабайтами многомерных массивов типа double не рассматриваем - это не для pic12). Основная же проблема ASM'a - это проблема с передачей проекта другому программисту. В данном топике это не проблема, равно как быстрый перенос кода на "все, что шевелится".Лучшим явлется тот инструмент, котрым хорошо владеешь. Мастер обыграет новичка в теннис даже взяв вместо ракетки сковородку.

Ещё раз. Я не собираюсь рубится на этой религиозной войне. Религиозные войны - самые бессмысленные, но и самые длительные и кровопролитные. biggrin.gif
Понятно, что если мастера устраивает его инструмент, агитировать его "за советскую власть" ни к чему. Однако пару моментов, на которые пытаюсь обратить внимание очередной раз. Так же некорректно сравнивать мастера с новичком (что любят делать почему-то именно сторонники ASM-а), как и ракетку со сковородой. И второе: не знаю, что такое "мозги заточенные под ASM", ведь ASM, в отличие от С, на каждой платформе разный. И проблемы возникают не столько при передаче проекта другому программисту (с другой заточкой мозгов rolleyes.gif?) , сколько при переносе программы на другое железо, буде таковое потребуется.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 8 2009, 09:54
Сообщение #60


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(Herz @ Jul 8 2009, 12:55) *
Ещё раз. Я не собираюсь рубится на этой религиозной войне. Религиозные войны - самые бессмысленные, но и самые длительные и кровопролитные. biggrin.gif
Понятно, что если мастера устраивает его инструмент, агитировать его "за советскую власть" ни к чему. Однако пару моментов, на которые пытаюсь обратить внимание очередной раз. Так же некорректно сравнивать мастера с новичком (что любят делать почему-то именно сторонники ASM-а), как и ракетку со сковородой. И второе: не знаю, что такое "мозги заточенные под ASM", ведь ASM, в отличие от С, на каждой платформе разный. И проблемы возникают не столько при передаче проекта другому программисту (с другой заточкой мозгов rolleyes.gif?) , сколько при переносе программы на другое железо, буде таковое потребуется.


я бы с удовольствием ничего никуда не переносил и не изучал ещё одно железо и синтаксис если бы за полбакса мог купить 51 контроллер размером 6*6 миллиметров.
Go to the top of the page
 
+Quote Post

8 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01479 секунд с 7
ELECTRONIX ©2004-2016