Страница 426 из 628

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

Добавлено: Вс апр 14, 2013 11:15:36
ut1wpr
menzoda писал(а):Да я хочу, нет я просто требую, чтобы IDE для ARM (стоящая over 7000$), разрабатываемая под присмотром самого ARM, вместе с отладчиком J-Link ARM, хорошо работали с ARM микроконтроллером.
Вы можете предъявить документ, подтверждающий вами покупку данного продукта? Именно на эти "over.."
Должен вас огорчить, что от "цельнотянутого" продукта можно ожидать ЛЮБЫХ глюков. Вы можете хотеть, требовать, топать ногами сколько вам будет угодно. Гарантия безошибочной работы распространяется только на честно приобретенные продукты. Вы уверены в отсутствии "закладок" в "кракнуто-хакнутых" вариантах? На чем базируется эта уверенность?
Надо быть требовательным. Если все будут требовать - они сделают, если все будут смиренно попускать им недостатки - они не пошевелятся и продолжат доить.
Интересно, на какую страшную сумму вас "выдоили"? :)
В заключение - у каждого бренда IDE есть support service. Во всем мире принято обращаться именно туда. Причем индивидуально. Не стоит "поднимать общественность" на битву с выловленным вами багом.
Там вас научать излагать свои проблемы предметно, расскажут, что такое "stable issue repeating". Но в первую очередь поинтересуются вашей legacy license.

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

Добавлено: Пн апр 15, 2013 16:44:19
Errorkpi
Кто-нибудь в курсе, где купить вот такую штуку Отладочная в Киеве.

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

Добавлено: Пн апр 15, 2013 17:11:30
ut1wpr
Errorkpi писал(а):Кто-нибудь в курсе, где купить вот такую штуку Отладочная в Киеве.
Дык прямо на ибэе и покупайте. Или вам охота "поддержать отечественного спекулянта"? :)
2-3 недели, и железяка ваша. Сомневаюсь, что этот срок выбьет вас из напряженного графика, согласованного с крутым заказчиком..

Re: Мелкие вопросы по теории

Добавлено: Пн апр 15, 2013 17:26:45
Мikа
Парни, а как в Atmel Studio 6 называется библиотека для ATmega32, которую в самом начале кода надо подключать?

На контроллере написано
ATMEGA32
16PU
1020D

Через программатор он отзывается как ATmega32, с signature 0x1E9502.

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

Добавлено: Пн апр 15, 2013 17:28:32
Errorkpi
ut1wpr писал(а):согласованного с крутым заказчиком..
Разве ж я сам себе сроки не смягчу?
Думал может есть в Киеве уже привезенное (по приемлемой цене) +20..30 грн. я согласен переплатить, за "здесь и сейчас". Но если нет так нет...

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

Добавлено: Пн апр 15, 2013 17:51:31
ut1wpr
Errorkpi писал(а):
ut1wpr писал(а):согласованного с крутым заказчиком..
Разве ж я сам себе сроки не смягчу?
Думал может есть в Киеве уже привезенное (по приемлемой цене) +20..30 грн. я согласен переплатить, за "здесь и сейчас". Но если нет так нет...
Плохо же вы думаете о наших барыгах. :) Не станут они за 20-30...
Не колеблясь покупайте на Ибэе.

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

Добавлено: Пн апр 15, 2013 20:48:33
Alexeyslav
Скорее 200-300% переплаты...

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

Добавлено: Пн апр 15, 2013 21:52:23
AVT-28
Добрый день, подкиньте плиза схемку дежурного режима.
Я тут устройство одно варганю и нужна дежурка.
Ну например пусть будет на Pic16f887.
Только вот проблема одна, есть 2 кнопки управления и 2 энкодера.
И новую кнопку никак не добавить т.к корпус спроектирован и все подогнано, оч долго все делалось. Я хотел бы например использовать кнопку стоп на вкл и выкл, если быстро нажать устройство включается если долго держать оно выключается.

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

Добавлено: Пн апр 15, 2013 22:13:40
Alexeyslav
Трансформатор - выпрямитель - стабилизатор. Классика же. Обычно для дежурного режима немного нужно, поэтому и транс пойдет маленький - 0.5 - 1Вт. От него же можно запитать реле которое будет включать основное питание.

Re: Мелкие вопросы по теории

Добавлено: Вт апр 16, 2013 10:52:48
Мikа
Мikа писал(а):Парни, а как в Atmel Studio 6 называется библиотека для ATmega32, которую в самом начале кода надо подключать?

На контроллере написано
ATMEGA32
16PU
1020D

Через программатор он отзывается как ATmega32, с signature 0x1E9502.
Дядьки...

Из всего, что там лежит, прописал ссылку на эту m32def.inc библиотеку. Но, походу, не она. Тк контроллер раз 5 прошился. Но были сообщения о НеVerify флеш памяти и что-то в этом роде. Щас контроллер так же выждаёт такие ошиббки, а если отключить проверку флеш после программирования, то, вроде бы, всё хорошо зашивает, но прошивка не работает.

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

Добавлено: Вт апр 16, 2013 13:25:31
ibiza11
Мikа писал(а):прописал ссылку на эту m32def.inc библиотеку
все правильно. этот файл и надо.

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

Добавлено: Вт апр 16, 2013 15:15:38
foton6
Доброго времени суток.
Надеюсь ни кто не против глупого вопроса?)
Простоя задача: при нажатии кнопки светодиод меняет свое состояние(вообщем просто оваиваю снятие состояния пинов).(atmega8, WinAvr+AVRStudio 4)
Код
Спойлер#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>

void main(void)
{
DDRD = (1<<0);
PORTC=(1<<4);
while(1)
{
if(PINC==16)
{
PORTD ^= 0b00000001;
_delay_ms(100);
}

}
}
Параллельно кнопке висит конденсатор(104) и подтяжка 10к(к +).
По идее(по моим соображениям) исходя из кода, диод должен постоянно моргать с задержкой 100мс, так как 16 = 0b00010000;
Но он не мигает, а именно при нажатии меняет свое состояние.(причем может не реагировать на нажатия по 3-4 раза если еще отключена подтяжка в МК)
Объясните почему именно так работает и если что-то не так подскажите что и где поправить?(забавно но внешние прерывания освоил раньше этого^^)
И можно ли снимать состояние не всего PINn, а одного отдельно(например PINC.4, в этом компиляторе этот способ не работает).
Нашел вот такой способ:
if(!(PINC&(1<<PINC5)))
Может кто разжевать пошагово логику этой записи(объясняя что означает каждый символ)?
P.S.
ни как не разберусь с символами: ~, |, ||, &, &&, ^(я так понял инверсия)

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

Добавлено: Вт апр 16, 2013 18:05:44
unalex
foton6 писал(а):Параллельно кнопке висит конденсатор(104)
это слишком много, достаточно нескольких нанофарад(но ИМХО лучше делать программный антидребезг, с задержкой около 20мс)
foton6 писал(а):Нашел вот такой способ:
if(!(PINC&(1<<PINC5)))
расшифровывается просто
имеем маску в виде единички сдвинутой на PINC5 - 00100000
вычисляем логическое И порта и этой маски(при логическом И единица будет только тогда когда и в маске и на порте единицы), т.е. в этом случае только одна нога информативна, на остальных всегда получится ноль

как вариант вместо записи 1<<PINC5 можно просто указать нужную маску(с единицами на тех местах, которые хотим проверять)
foton6 писал(а):ни как не разберусь с символами: ~, |, ||, &, &&, ^(я так понял инверсия)

побитовые операции(для преобразования)
~ инверсия
| побитовое ИЛИ(единица, если хоть один из операндов 1)
^ побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ(единица, если значения операндов разные)
& побитовое И(ноль, если один из операндов 0)

операторы сравнения(для сравнения, Кэп)
|| ИЛИ
&& И

---------------
а вообще это описано в любой книжке по программированию,не говоря уже о гуглепоиске "логические операции"

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

Добавлено: Вт апр 16, 2013 21:07:04
foton6
unalex спасибо. Все понятно.
Пару книг уже прочел, но теория плохо усваивается без практики.
Вот сейчас запомнившееся осваиваю на практике ))
Вроде заработало, вот только в данном исполнении программы за одно нажатие диод успевает раз 5 сменить свое состояние.
Ну вообщем это уже мелочи главное ясно как работать с пином.

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

Добавлено: Ср апр 17, 2013 00:45:51
unalex
за одно нажатие диод успевает раз 5 сменить свое состояние
так оно и будет - программа крутится в бесконечном цикле и пока кнопка нажата, светодиод будет неоднократно переключаться

чтобы заставить переключаться его только один раз - можно использовать 2 способа
1 переключать только по ИЗМЕНЕНИЮ состоянии кнопки а не по нажатому состоянию, т.е. каждый раз запоминать предыдущее состояние, и если оно не меняется - ничего не делать
2 использовать дополнительную переменную - флаг, при нажатой кнопке и флаге(например равном нулю) - переключить диод и изменить флаг(в единицу), при опущенной кнопке снова его сбросить

...........
ну и не следует забывать о дребезге контактов

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

Добавлено: Ср апр 17, 2013 06:54:29
foton6
unalex
Я же говорю остальное мелочи, мне главное научится было использовать пины.
Реально голова у меня рабочая, я с книгами дружу очень плохо и с теорией в целом *)
Вот такое решение:
Спойлер#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>

void main(void)
{
DDRD = (1<<0);
while(1)
{
if(PINC&(1<<4))
{
while(1)
{
if(!(PINC&(1<<4)))
{
PORTD ^= 0b00000001;
break;
}
}
}
}
}
У меня работает на ура.

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

Добавлено: Ср апр 17, 2013 07:02:49
Alexeyslav
Задержку забыл

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

Добавлено: Ср апр 17, 2013 08:12:41
a_skr
можно чуток красивее:

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

void main(void)
{
  DDRD = 1;
  PORTC = (1<<4); // внутренняя подтяжка (можно не использовать внешнюю)
  while(1)
  {
    while(PINC & (1<<4)) ; // ждем нажатия (появления нуля)
    PORTD ^= 1; // переключаем выход
    _delay_ms(100); // от дребезга
    while((PINC&(1<<4)) == 0) ; // ждем отпускания (появления единицы)
    _delay_ms(100); // от дребезга
  }
}

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

Добавлено: Ср апр 17, 2013 11:21:45
Мikа
Вопрос с инициализацией стэка ATmega32.

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

.def R16=Temp1
-//-//-
ldi Temp1, RamEnd ;Инициализация стека
out SPL, Temp1
Компилятор пишет ошибку Operand(s) out of range in 'ldi r16,0x85f'

0x85f = 1000 0101 1111

Надо полтора байта, то есть два регистра. Только что-то не догоню, как это сделать :) SPL и SPH. Но как это правильно записать?

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

Добавлено: Ср апр 17, 2013 11:25:07
Gudd-Head
ldi tmp, high(RAMEND); Set Stack Pointer to top of RAM
out SPH, tmp;
ldi r16, low(RAMEND);
out SPL, tmp;