Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Гуру! Подскажите в microC таймеры умеют симулироваться?
Аватара пользователя
ximik
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Вс ноя 07, 2010 14:48:55
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ximik »

Подскажите а в PIC16f628A есть та дурацкая константа типо как в pic 12f629 :solder:
Если болит голова, значит она есть!)
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение uldemir »

нету
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25151
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

А что дурацкого в калибровочной константе? Не нужно - не пользуйтесь...
За Вас производитель откалибровал встроенный осциллятор, а Вы еще и недовольны...
Ужосссс...
:o
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

По microC подскажите плиз, а то брошу его нафиг!

ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
FFAMax
Родился
Сообщения: 11
Зарегистрирован: Вс ноя 14, 2010 16:23:22

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FFAMax »

Chettuser писал(а):По microC подскажите плиз, а то брошу его нафиг!

ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.


Поддерживаю вопрос, очень интересный и полезный.
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SII »

Я Си не использую, но общий принцип одинаков для любого языка. Предположим, что нужно вывести значение Value в разрядны 3-5 порта Port. Для этого надо сделать примерно следующее:

Код: Выделить всё

BYTE Temp;

// Читаем из порта во временую переменную все его 8 разрядов.
Temp = Port;

// Сбрасываем в 0 те разряды, куда нужно вывести значение, не трогая остальные разряды.
Temp = Temp & 0xC7;

// Добавляем значение в нужные разряды.
Temp = Temp | (Value << 3);

// Выводим полученное значение в порт.
Port = Temp;
pavlo!
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн май 30, 2011 14:14:44
Откуда: малоярославец
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pavlo! »

добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).

и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
FFAMax
Родился
Сообщения: 11
Зарегистрирован: Вс ноя 14, 2010 16:23:22

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FFAMax »

SII Спасибо!
pavlo! писал(а):добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).

и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)

Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Спасибо, если я правильно понял, то
(Value << 3)
- это побитовый сдвиг в переменной на 3 влево.
SII писал(а):

Код: Выделить всё

// Добавляем значение в нужные разряды.
Temp = Temp | (Value << 3);
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SubDia »

Ну да. Сдвиг с побитным "или".
Часто приходится к подобным операциям прибегать - особенно с 16-разрядными регистрами (порты и т.д.).
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
pavlo!
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн май 30, 2011 14:14:44
Откуда: малоярославец
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pavlo! »

FFAMax писал(а):Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р


ну вот этот LPT и есть программатор "5 резисторов". да, он легкий, но мегу8 я прошил через него наверно раза с 20го только. комп ошибку выдавал. а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SII »

Chettuser писал(а):Спасибо, если я правильно понял, то
(Value << 3)
- это побитовый сдвиг в переменной на 3 влево.


Не _в_ переменной, а её значения. Сама переменная не изменяется. Поскольку условием я себе поставил выдачу значения переменной в 3-5 разряды порта, её и потребовалось сдвинуть в нужную позицию -- к третьему разряду т.е.

Всё это можно записать и короче (Си вообще позволяет очень компактно -- и крайне запутанно -- писать), но я предпочитаю лишний раз нажать на клаву, зато получить более читабельный текст.
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Простите, не так написал.
Абсолютно с Вами согласен насчёт "читабельности" кода. Через полгода в таком запутанном/укороченном уже и не разберёшься.
FFAMax
Родился
Сообщения: 11
Зарегистрирован: Вс ноя 14, 2010 16:23:22

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FFAMax »

pavlo! писал(а): а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?


Ну как бы да. Атмега 8 стоит на самом программаторе, она же отвечает за связь с ПК и она же программирует вторую мегу.
Т.е. сам программатор собран на меге.
т.е. чтобы запрограммировать мегу, нужна вторая мега, а чтобы запрограммировать первую мегу, нужен lpt (или другой готовый) программатор.

Господа, подскажите в таком вопросе.
При работе с USART, ковыряя исходники прошлого года, нашел такую конструкцию

Код: Выделить всё

UDR0 = printf ("Hello world!");

Сейчас мне как-то дико на такое смотреть, пишу по байтам.

Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз :)
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DX168B »

Обычно, компилятор выводит листинг на ассемблере (WinAVR). Вот там и смотрите. :)
I am DX168B and this is my favourite forum on internet!
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SII »

FFAMax писал(а):При работе с USART, ковыряя исходники прошлого года, нашел такую конструкцию

Код: Выделить всё

UDR0 = printf ("Hello world!");

Сейчас мне как-то дико на такое смотреть, пишу по байтам.

Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз :)


Опять-таки, на Сях не работаю, но вставлю свои пять копеек...

printf -- это функция (подпрограмма), которая выводит то, что задано ей в качестве параметров (в данном случае -- строку с хелловорлдом) на консоль. Что такое консоль, определяется реализацией. Подозреваю, что в используемом Вами трансляторе консоль -- это UART0 (или как там он называется в Вашем случае). Компилятор же просто вызывает эту самую подпрограмму, передавая ей на вход адрес строки, и она побайтно засовывает её в УАРТ, ожидая каждый раз его готовности проглотить новый символ.

Что возвращает printf в качестве результата как функция, я не помню, а смотреть лениво. В любом случае, возвращаемое значение -- это отнюдь не то, что Вы собирались выводить. Это может быть, например, количество выведенных символов вообще. Таким образом, Вы просто неправильно использовали эту функцию, и тот же результат был бы получен, если б Вы написали её вызов без всяких присваиваний.

Кстати говоря, printf -- одна из самых жирных функций библиотеки Си, способная занять половину флэш-памяти какого-нибудь не слишком мощного микроконтроллера...

Пы.Сы. И обязательно осваивайте ассемблер. Его знание для человека, работающего с МК, абсолютно необходимо, даже если 99,999% работы делается на языке высокого уровня: во-первых, не всё можно сделать на ЯВУ; во-вторых, без ассемблера многие вещи так и останутся непонятными (а если ещё и компилятор сгенерит неверный код, то попробуй это обнаружь); ну а в-третьих, нередко использование ассемблера вместо ЯВУ позволяет решить задачу намного быстрее и компактнее, что может оказаться немаловажным или вообще критически необходимым в определённых ситуациях.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

МитяРа писал(а):Пушистые, нас уже трое !!!

Не правда Ваша. Как минимум нас пятеро: к заявленным добавьте GP1 и меня
Последний раз редактировалось Meteor Вс авг 14, 2011 21:43:45, всего редактировалось 1 раз.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

А что гуру скажут по поводу microC (см. верх страницы) ?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Chettuser писал(а):А что гуру скажут по поводу microC (см. верх страницы) ?

Мне кажется, таких очень мало. Без обид :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «Разные вопросы по МК»