Начало работы с программированием PIC (или аналогичных продуктов) [закрыто]

Операторы сравнения по умолчанию сравнивают списки в лексикографическом порядке. Поэтому вы можете сказать такие вещи, как:

>>> [1, 2, 3, 4] < [5, 6, 7, 8]
True

Если вместо этого вы хотите вычислить элементное сравнение, вы можете использовать map и cmp (или любой другой оператор:

>>> map(cmp, [1, 2, 3, 4], [5, 6, 7, 8])
[-1, -1, -1, -1]
16
задан Peter Mortensen 21 April 2010 в 22:23
поделиться

14 ответов

Большинство поставщиков компиляторов C для PIC имеют хорошие недорогие стартовые микросхемы с бесплатными версиями компилятора, которые обычно ограничены конкретным процессором (который входит в комплект или несколько других), самым дорогим товаром будет ICD (

К ним относятся:

  • Микрочип
  • CCS
  • HITECH
  • подробнее ... Есть даже некоторые компиляторы с открытым исходным кодом PIC C / C ++.

Я начал с CCS, но мне не очень нравится их компилятор C, но я не уделяю достаточно внимания работе над PIC, чтобы беспокоиться о переключении ... пока.

0
ответ дан 30 November 2019 в 21:03
поделиться

Hopefully I won't get trashed for saying this but I find that assembler is far easier for the PIC than anything else. I am talking about the PIC not the PIC 32 which is a completely different thing.

I usually frequent SparkFun for both Olimex and non-Olimex (SparkFun) boards. Sometimes there are links to working examples, sometimes not, you have to shop around.

I cut my teeth on the PIC but have long since left them behind. The instruction set was horribly inefficient and they didn't "get it" when it came to development boards. It looks like they do "get it" now, there are a ton of boards in that $20 - $50 range with which one can get their feet wet, actually perhaps too many boards. Sadly a day late and ollar short for me personally.

You will want either something akin to the AVR Butterfly, a handful of different on board gadgets to learn to program, and/or an almost bare board, just the chip, clock/power preferably communications UART or UART over USB (That way you get power as well). Note SparkFun has a number of solutions for that, little boards that you plug on the end of a USB cable and the other side is UART and power and ground. With the simple board you can add your own LEDs and whatever without having to remove or disable the gee whiz gadgets that came with the evaluation board. At one point I used a SPI UART as bit banging SPI was easier than bit banging the UART bits themselves.

I would start by blinking LEDs, both by counting instructions and the number of clocks in a loop and by learning to use the on-chip timer. Then learn to scale the system clock or other clock divisors. Then I would get into the UART or bit bang a serial out so that your programs can communicate with you. Then try to receive serial/UART data, with a UART if it's there, but also by polling an I/O pin and using a timer or counting clocks, and also use interrupts, interrupting on a state change on the pin if that is possible. Learn how to use pull-ups, get a Dallas Semiconductor one wire temperature sensor or something like it and don't just download working code. Figure out how to communicate with it (you may very well melt down one or more parts doing this, both PICs and temperature sensors, buy extras of everything).

All and more of these basic skills are required to do robotics. Hmmm, stepping that motor is not unlike bit banging a UART or SPI bus, just a little different...

You say robotics in your post but either before you start or as you shop and look at the boards available and download and read the datasheets for the chips (before you buy one), you really need to find a simple project. For me it was an infrared receiver, point your television remote at the PIC plus a couple of parts from radio shack (well one part) and then either blink an LED to show what I received or later bit bang it out a UART. Eventually I was able to completely parse different IR protocols, and for fun still do that from time to time with different microcontrollers.

Finding a project that receives something, a sensor, etc. Is probably easier to do at home without a lot of special equipment. Basically it's just a matter of time, depending on the device. You just sample the input pin at some rate and somehow send that to yourself where you can graph it or examine it and realize that it is running like 4 times slower than I thought. I wonder why that is, and/or if I just change this code here to adapt for the slower rate then my receiver will work.

If you are trying to output something, you are likely going to want some sort of an oscilloscope or logic analyzer to "see" your output, and even with a scope the device may still just not accept your data. Eventually you will want to have a project that outputs something, sure so you will need to be prepared for that. Depending on what you want to interface with you could get two microcontroller boards and have one output the data as if it were talking to the device and have the other monitor and or receive the data as if it were a logic analyzer, giving you a way to "see" the data for $20 instead of $20,000.

Oh and when you go embedded, forget EVERYTHING, you were taught in programming class. PIC and rabbit semi and other compilers are not going to be true C compilers, but kind of C compilers (some may be compatible with some standard, but for embedded you don't NEED that). Rules like no gotos, no global variables, one return per function, functions should be less than X lines of code, etc. These may or may have a purpose on a computer but many of them will hurt you dearly in the embedded world. Make sure you can disassemble or basically see the instructions being created by your C code. With a sometimes very limited ROM and RAM, you don't want to be using 10 to 100 times more resources than you really needed to. Or have to buy a bigger part just because of your coding style. As with blinking LEDs to learn how to use the I/O pins, learning how to program for embedded is just as important before you get into a real project. The good thing about this is that you can probably get a free or demo compiler and start learning this stuff before you buy any hardware. There are probably PIC simulators out there as well that you can single step through the code with to understand what is going on.

My bottom line is that you shouldn't limit yourself to the PIC, shop sparkfun.com, buy a few different $20 evaluation boards with different chips (AVR, PIC, MSP430, and definitely some of the ARM based ones), fiddle with all of them. Determine their strengths and weaknesses and/or your favorites based on your personal coding style. Everyone has a little bit different way of implementing I/O and timers and interrupts, etc.

13
ответ дан 30 November 2019 в 21:03
поделиться

Практически в каждом выпуске Make Magazine есть как минимум один робототехнический проект. Их блог также полон идей.

3
ответ дан 30 November 2019 в 21:03
поделиться

Пара полезных ссылок:

(вики сообщества, поэтому, пожалуйста, добавьте больше)

2
ответ дан 30 November 2019 в 21:03
поделиться

В настоящее время я играю с процессорами PIC в качестве хобби с очень ограниченным временем и денежным бюджетом. Я получил стартовый набор Microchip от Farnell (я заплатил 20 фунтов стерлингов, но сейчас он все еще стоит менее 30 фунтов стерлингов).

Важно отметить, что хотя в комплекте идет 14-контактный разъем, он Я буду использовать микросхему 20 pin 16F690 .

Я использую компилятор HI-TECH C с бесплатной версией, превосходной.

I также используйте плату Velleman USB , которую я получил от Maplin за 30 фунтов. Это немного медленно, но позволяет вам общаться с PIC с вашего ПК.

Процессоры PIC могут быть не самыми лучшими, но они просты в использовании и дешевы.

2
ответ дан 30 November 2019 в 21:03
поделиться

Честно говоря, я бы сейчас не стал беспокоиться о PIC, а взглянул на микросхемы, содержащие ядра ARM7. Они мощные, довольно простые в использовании, могут программироваться с помощью бесплатных инструментов (GCC) и теперь дешевы. Вы не говорите, где находитесь, но если вы находитесь в Европе, посмотрите на покупку платы разработки у этой компании.

http://www.olimex.com/dev/

Если вы считаете, что ARM7 ядро сложное, тогда взгляните на семейство MSP430. Я купил набор для разработки MSP430, изготовленный в Техасе и проданный Фарнеллом, примерно за 12 фунтов стерлингов, который также включал в себя слегка поврежденный компилятор Си.

0
ответ дан 30 November 2019 в 21:03
поделиться

Одним из способов начать работу является использование стартовых комплектов PIC, предлагаемых Microchip . Обычно это одна демонстрационная плата, которая поставляется с одним PIC, который можно использовать для программирования микроконтроллера, а также для выполнения некоторых простых проектов со светодиодами и тому подобного, которые есть на плате, вместе с оценочной версией компилятора C.

Существует несколько семейств PIC, начиная с 8-контактных 8-разрядных микроконтроллеров, которые имеют только 256 слов памяти, до 32-разрядных микроконтроллеров с сотнями КБ ОЗУ и флэш-памятью на основе ядра ARM. Поэтому, вероятно, было бы неплохо сначала выяснить, какими будут требования (из книг и учебных пособий), прежде чем решать, какое семейство микроконтроллеров PIC использовать.

Поиск чего-то вроде " Однако следует отметить, что многие книги могут фактически использовать BASIC или другие компиляторы, не относящиеся к языку C, для программирования микроконтроллера, поэтому, возможно, было бы неплохо сначала взглянуть на содержание книги, чтобы убедиться, что она предоставляет C примеры.

Кроме того, следует отметить, что могут быть некоторые несовместимости между компиляторами C (доступными библиотеками и т. д.), поэтому было бы неплохо также проверить, есть ли у вас компилятор C и примеры кода, приведенные в Книга на самом деле будет работать друг с другом. Эта часть может быть одной из самых разочаровывающих в начале программирования.

Однако следует отметить, что многие книги могут фактически использовать BASIC или другие компиляторы, не относящиеся к языку C, для программирования микроконтроллера, поэтому, возможно, было бы неплохо сначала взглянуть на содержание книги, чтобы убедиться, что она предоставляет C примеры.

Кроме того, следует отметить, что могут быть некоторые несовместимости между компиляторами C (доступными библиотеками и т. д.), поэтому было бы неплохо также проверить, есть ли у вас компилятор C и примеры кода, приведенные в Книга на самом деле будет работать друг с другом. Эта часть может быть одной из самых разочаровывающих в начале программирования.

так что, вероятно, было бы неплохо сначала взглянуть на содержание книги, чтобы убедиться, что в ней приведены примеры на языке C.

Кроме того, следует отметить, что могут быть некоторые несовместимости между компиляторами C (доступными библиотеками и тому подобным) , поэтому было бы неплохо также проверить, что ваш компилятор C и примеры кода, приведенные в книге, действительно работают друг с другом. Эта часть может быть одной из самых разочаровывающих в начале программирования.

так что, вероятно, было бы неплохо сначала взглянуть на содержание книги, чтобы убедиться, что в ней приведены примеры на языке C.

Кроме того, следует отметить, что могут быть некоторые несовместимости между компиляторами C (доступными библиотеками и тому подобным) , поэтому было бы неплохо также проверить, что ваш компилятор C и примеры кода, приведенные в книге, действительно работают друг с другом. Эта часть может быть одной из самых разочаровывающих в начале программирования.

7
ответ дан 30 November 2019 в 21:03
поделиться

You want to do the electronics as well as the embedded development. You could look at the Beginning Embedded Electronics tutorials at SparkFun. This project is ATmega168 based.

0
ответ дан 30 November 2019 в 21:03
поделиться

Вы можете взглянуть на стартовые комплекты от Rabbit . Они предлагают множество недорогих стартовых наборов, чтобы опробовать определенные технологии, такие как беспроводная связь, bluetooth, датчики и т. Д. Было бы весело заняться встроенным программированием, сделав крутой гаджет.

Мои коллеги использовали некоторые наборы Rabbit a несколько лет назад, чтобы приступить к их разработке.

0
ответ дан 30 November 2019 в 21:03
поделиться

У Двенго есть несколько хороших руководств и стартовых наборов для начала работы с PIC на C, включая некоторые проекты робототехники.

0
ответ дан 30 November 2019 в 21:03
поделиться

Поскольку я очень привык к Delphi, продукты от микроэлектроники мне очень понравились. Я выполнил несколько проектов с использованием MikroPascal (очень похожего на синтаксис Delphi), используя их платы разработки EasyPIC и программистов.

Они находятся где-то в восточной Европе, но у меня никогда не было проблем с доставкой их продуктов в США.

Вот ссылка на их сайт:

http://www.mikroe.com/

0
ответ дан 30 November 2019 в 21:03
поделиться

Я выбрал AVR вместо PIC для моего хобби-проекта микроконтроллера и решил «нетривиальный» проект робота-гексапода «с нуля» (без комплектов) с кастомная электроника и прошивка в сборке ... Блог здесь , все идет хорошо, но медленно :)

Я обнаружил, что учебники на SparkFun были очень хорошими, но не мне нужно много времени, чтобы начать.

На AVRFreaks есть отличное сообщество разработчиков AVR с множеством учебных материалов, больше для C, чем для ассемблера, если честно.

1
ответ дан 30 November 2019 в 21:03
поделиться

Хотя некоторое время прошло по вопросу, я хотел бы поделиться хорошим учебным звеном для тех, кто ищет эту тему на Stackoverflow.

Googligum Electronics - Учебники PIC

Они очень хорошо объясняют вещи.

1
ответ дан 30 November 2019 в 21:03
поделиться

Начало работы с программированием PIC ...

Поскольку вы упомянули PIC, я добавлю два цента, порекомендовав подробную книгу Встроенное программирование на C и Microchip PIC Барнетта, О'Калла. и Кокс. Фрагменты в гугл-книгах

В книге используется компилятор CCS.

О, и когда вы переходите встраиваемым, забудьте ВСЕ, чему вас учили на уроках программирования.

Ага. Кроме того, документации гораздо меньше. Кроме того, IDE для разработки встраиваемых систем заметно более упрощены (но кажутся более загадочными), чем IDE для разработки на ПК.

0
ответ дан 30 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: