Страница 213 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб авг 13, 2011 11:47:04
Chettuser
Гуру! Подскажите в microC таймеры умеют симулироваться?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб авг 13, 2011 19:21:49
ximik
Подскажите а в PIC16f628A есть та дурацкая константа типо как в pic 12f629

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб авг 13, 2011 19:24:44
uldemir
нету
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб авг 13, 2011 21:09:18
КРАМ
А что дурацкого в калибровочной константе? Не нужно - не пользуйтесь...
За Вас производитель откалибровал встроенный осциллятор, а Вы еще и недовольны...
Ужосссс...

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 07:39:27
Chettuser
По microC подскажите плиз, а то брошу его нафиг!
ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 12:13:58
FFAMax
Chettuser писал(а):По microC подскажите плиз, а то брошу его нафиг!
ЗЫ: Еще вопрос.
Допустим МК имеет 8-разрядный порт, а мне необходимо "эмулировать" на нём 3-х (4-х, 5-ти) разрядный порт, остальные ножки например на вход. Как это реализовать программно? (дефайнами? но как с ним тогда работать?).
Для чего это нужно - у меня бывает ситуация когда требуется вывести число, например 3-х разрядное в порт, но не в PB0-PB2, а скажем в PB4-PB6. Киньте кусок кода чтобы разобраться, плиз. Ничего понятного в инете так и не нашёл.
Поддерживаю вопрос, очень интересный и полезный.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 13:11:05
SII
Я Си не использую, но общий принцип одинаков для любого языка. Предположим, что нужно вывести значение Value в разрядны 3-5 порта Port. Для этого надо сделать примерно следующее:
Код: Выделить всё
BYTE Temp;
// Читаем из порта во временую переменную все его 8 разрядов.
Temp = Port;
// Сбрасываем в 0 те разряды, куда нужно вывести значение, не трогая остальные разряды.
Temp = Temp & 0xC7;
// Добавляем значение в нужные разряды.
Temp = Temp | (Value << 3);
// Выводим полученное значение в порт.
Port = Temp;
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 14:26:49
pavlo!
добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).
и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 14:40:08
FFAMax
SII Спасибо!
pavlo! писал(а):добрый день. подскажите несложный программатор для прошивки atmega8 ("5 резисторов" не подходит).
и еще вопрос- валяется программатор (немного не доделаный) avr910. как через него прошивать? (как я раньше думал, мк для прошивки надо вставлять в сам программатор как допустим на jdm для picов. но поискав инфу понял что не все так просто)
Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 14:43:37
Chettuser
Спасибо, если я правильно понял, то
(Value << 3)
- это побитовый сдвиг в переменной на 3 влево.
SII писал(а):
Код: Выделить всё
// Добавляем значение в нужные разряды.
Temp = Temp | (Value << 3);
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 15:04:18
SubDia
Ну да. Сдвиг с побитным "или".
Часто приходится к подобным операциям прибегать - особенно с 16-разрядными регистрами (порты и т.д.).
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 15:09:14
pavlo!
FFAMax писал(а):
Моим первым программатором был LPT порт, считаю его самым простым =)
На ПК порта не было, достал материнку с LPT, прикрутил к окну саморезом, рядышком БП и HDD, пока не купил дешевенький USBasp за 600р
ну вот этот LPT и есть программатор "5 резисторов". да, он легкий, но мегу8 я прошил через него наверно раза с 20го только. комп ошибку выдавал. а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 15:58:19
SII
Chettuser писал(а):Спасибо, если я правильно понял, то
(Value << 3)
- это побитовый сдвиг в переменной на 3 влево.
Не _в_ переменной, а её значения. Сама переменная не изменяется. Поскольку условием я себе поставил выдачу значения переменной в 3-5 разряды порта, её и потребовалось сдвинуть в нужную позицию -- к третьему разряду т.е.
Всё это можно записать и короче (Си вообще позволяет очень компактно -- и крайне запутанно -- писать), но я предпочитаю лишний раз нажать на клаву, зато получить более читабельный текст.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 16:32:51
Chettuser
Простите, не так написал.
Абсолютно с Вами согласен насчёт "читабельности" кода. Через полгода в таком запутанном/укороченном уже и не разберёшься.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 16:59:18
FFAMax
pavlo! писал(а): а USBasp по сути и есть avr910. вот я немогу понять как с ним работать. мк на нем всегда должен стоять? или это и есть програмируемый мк?
Ну как бы да. Атмега 8 стоит на самом программаторе, она же отвечает за связь с ПК и она же программирует вторую мегу.
Т.е. сам программатор собран на меге.
т.е. чтобы запрограммировать мегу, нужна вторая мега, а чтобы запрограммировать первую мегу, нужен lpt (или другой готовый) программатор.
Господа, подскажите в таком вопросе.
При работе с USART, ковыряя исходники прошлого года, нашел такую конструкцию
Сейчас мне как-то дико на такое смотреть, пишу по байтам.
Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 19:05:48
DX168B
Обычно, компилятор выводит листинг на ассемблере (WinAVR). Вот там и смотрите.

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 19:34:15
SII
FFAMax писал(а):При работе с USART, ковыряя исходники прошлого года, нашел такую конструкцию
Сейчас мне как-то дико на такое смотреть, пишу по байтам.
Что меня смутило - как это работает? Компилятор разбивает на несколько итераций?
В даташите сказано, что там есть FIFO очередь, но туда ведь нельзя засунуть целиком строку, а значит компилятор все же что-то делал. Если кто знает как оно это сделало, подскажите плз

Опять-таки, на Сях не работаю, но вставлю свои пять копеек...
printf -- это функция (подпрограмма), которая выводит то, что задано ей в качестве параметров (в данном случае -- строку с хелловорлдом) на консоль. Что такое консоль, определяется реализацией. Подозреваю, что в используемом Вами трансляторе консоль -- это UART0 (или как там он называется в Вашем случае). Компилятор же просто вызывает эту самую подпрограмму, передавая ей на вход адрес строки, и она побайтно засовывает её в УАРТ, ожидая каждый раз его готовности проглотить новый символ.
Что возвращает printf в качестве результата как функция, я не помню, а смотреть лениво. В любом случае, возвращаемое значение -- это отнюдь не то, что Вы собирались выводить. Это может быть, например, количество выведенных символов вообще. Таким образом, Вы просто неправильно использовали эту функцию, и тот же результат был бы получен, если б Вы написали её вызов без всяких присваиваний.
Кстати говоря, printf -- одна из самых жирных функций библиотеки Си, способная занять половину флэш-памяти какого-нибудь не слишком мощного микроконтроллера...
Пы.Сы. И обязательно осваивайте ассемблер. Его знание для человека, работающего с МК, абсолютно необходимо, даже если 99,999% работы делается на языке высокого уровня: во-первых, не всё можно сделать на ЯВУ; во-вторых, без ассемблера многие вещи так и останутся непонятными (а если ещё и компилятор сгенерит неверный код, то попробуй это обнаружь); ну а в-третьих, нередко использование ассемблера вместо ЯВУ позволяет решить задачу намного быстрее и компактнее, что может оказаться немаловажным или вообще критически необходимым в определённых ситуациях.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 20:06:04
Meteor
МитяРа писал(а):Пушистые, нас уже трое !!!
Не правда Ваша. Как минимум нас пятеро: к заявленным добавьте GP1 и меня
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 20:29:19
Chettuser
А что гуру скажут по поводу microC (см. верх страницы) ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс авг 14, 2011 21:04:36
Gudd-Head
Chettuser писал(а):А что гуру скажут по поводу microC (см. верх страницы) ?
Мне кажется, таких очень мало. Без обид
