Мелкие вопросы по МК и ПЛИС.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Гуру! Подскажите в microC таймеры умеют симулироваться?
- ximik
- Потрогал лапой паяльник
- Сообщения: 301
- Зарегистрирован: Вс ноя 07, 2010 14:48:55
- Откуда: Москва
Re: Мелкие вопросы по МК и ПЛИС.
Подскажите а в PIC16f628A есть та дурацкая константа типо как в pic 12f629 

Если болит голова, значит она есть!)
- КРАМ
- Друг Кота
- Сообщения: 25151
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
А что дурацкого в калибровочной константе? Не нужно - не пользуйтесь...
За Вас производитель откалибровал встроенный осциллятор, а Вы еще и недовольны...
Ужосссс...

За Вас производитель откалибровал встроенный осциллятор, а Вы еще и недовольны...
Ужосссс...
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
По microC подскажите плиз, а то брошу его нафиг!
ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):По microC подскажите плиз, а то брошу его нафиг!
ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
Поддерживаю вопрос, очень интересный и полезный.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Мелкие вопросы по МК и ПЛИС.
Я Си не использую, но общий принцип одинаков для любого языка. Предположим, что нужно вывести значение 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: Мелкие вопросы по МК и ПЛИС.
добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).
и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
Re: Мелкие вопросы по МК и ПЛИС.
SII Спасибо!
Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
pavlo! писал(а):добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).
и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо, если я правильно понял, то
- это побитовый сдвиг в переменной на 3 влево.(Value << 3)
SII писал(а):Код: Выделить всё
// Добавляем значение в нужные разряды.
Temp = Temp | (Value << 3);
- SubDia
- Держит паяльник хвостом
- Сообщения: 995
- Зарегистрирован: Сб апр 02, 2011 17:59:22
- Откуда: Город-герой Севастополь
Re: Мелкие вопросы по МК и ПЛИС.
Ну да. Сдвиг с побитным "или".
Часто приходится к подобным операциям прибегать - особенно с 16-разрядными регистрами (порты и т.д.).
Часто приходится к подобным операциям прибегать - особенно с 16-разрядными регистрами (порты и т.д.).
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

-
pavlo!
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Пн май 30, 2011 14:14:44
- Откуда: малоярославец
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
FFAMax писал(а):Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
ну вот этот LPT и есть программатор "5 резисторов". да, он легкий, но мегу8 я прошил через него наверно раза с 20го только. комп ошибку выдавал. а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):Спасибо, если я правильно понял, то- это побитовый сдвиг в переменной на 3 влево.(Value << 3)
Не _в_ переменной, а её значения. Сама переменная не изменяется. Поскольку условием я себе поставил выдачу значения переменной в 3-5 разряды порта, её и потребовалось сдвинуть в нужную позицию -- к третьему разряду т.е.
Всё это можно записать и короче (Си вообще позволяет очень компактно -- и крайне запутанно -- писать), но я предпочитаю лишний раз нажать на клаву, зато получить более читабельный текст.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Простите, не так написал.
Абсолютно с Вами согласен насчёт "читабельности" кода. Через полгода в таком запутанном/укороченном уже и не разберёшься.
Абсолютно с Вами согласен насчёт "читабельности" кода. Через полгода в таком запутанном/укороченном уже и не разберёшься.
Re: Мелкие вопросы по МК и ПЛИС.
pavlo! писал(а): а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?
Ну как бы да. Атмега 8 стоит на самом программаторе, она же отвечает за связь с ПК и она же программирует вторую мегу.
Т.е. сам программатор собран на меге.
т.е. чтобы запрограммировать мегу, нужна вторая мега, а чтобы запрограммировать первую мегу, нужен lpt (или другой готовый) программатор.
Господа, подскажите в таком вопросе.
При работе с USART, ковыряя исходники прошлого года, нашел такую конструкцию
Код: Выделить всё
UDR0 = printf ("Hello world!");Сейчас мне как-то дико на такое смотреть, пишу по байтам.
Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Обычно, компилятор выводит листинг на ассемблере (WinAVR). Вот там и смотрите. 
I am DX168B and this is my favourite forum on internet!
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Мелкие вопросы по МК и ПЛИС.
FFAMax писал(а):При работе с USART, ковыряя исходники прошлого года, нашел такую конструкциюКод: Выделить всё
UDR0 = printf ("Hello world!");
Сейчас мне как-то дико на такое смотреть, пишу по байтам.
Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз
Опять-таки, на Сях не работаю, но вставлю свои пять копеек...
printf -- это функция (подпрограмма), которая выводит то, что задано ей в качестве параметров (в данном случае -- строку с хелловорлдом) на консоль. Что такое консоль, определяется реализацией. Подозреваю, что в используемом Вами трансляторе консоль -- это UART0 (или как там он называется в Вашем случае). Компилятор же просто вызывает эту самую подпрограмму, передавая ей на вход адрес строки, и она побайтно засовывает её в УАРТ, ожидая каждый раз его готовности проглотить новый символ.
Что возвращает printf в качестве результата как функция, я не помню, а смотреть лениво. В любом случае, возвращаемое значение -- это отнюдь не то, что Вы собирались выводить. Это может быть, например, количество выведенных символов вообще. Таким образом, Вы просто неправильно использовали эту функцию, и тот же результат был бы получен, если б Вы написали её вызов без всяких присваиваний.
Кстати говоря, printf -- одна из самых жирных функций библиотеки Си, способная занять половину флэш-памяти какого-нибудь не слишком мощного микроконтроллера...
Пы.Сы. И обязательно осваивайте ассемблер. Его знание для человека, работающего с МК, абсолютно необходимо, даже если 99,999% работы делается на языке высокого уровня: во-первых, не всё можно сделать на ЯВУ; во-вторых, без ассемблера многие вещи так и останутся непонятными (а если ещё и компилятор сгенерит неверный код, то попробуй это обнаружь); ну а в-третьих, нередко использование ассемблера вместо ЯВУ позволяет решить задачу намного быстрее и компактнее, что может оказаться немаловажным или вообще критически необходимым в определённых ситуациях.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
МитяРа писал(а):Пушистые, нас уже трое !!!
Не правда Ваша. Как минимум нас пятеро: к заявленным добавьте GP1 и меня
Последний раз редактировалось Meteor Вс авг 14, 2011 21:43:45, всего редактировалось 1 раз.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
А что гуру скажут по поводу microC (см. верх страницы) ?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):А что гуру скажут по поводу microC (см. верх страницы) ?
Мне кажется, таких очень мало. Без обид
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]