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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

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

Сообщение Errorkpi »

Кто-нибудь в курсе, где купить вот такую штуку Отладочная в Киеве.
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Errorkpi писал(а):Кто-нибудь в курсе, где купить вот такую штуку Отладочная в Киеве.
Дык прямо на ибэе и покупайте. Или вам охота "поддержать отечественного спекулянта"? :)
2-3 недели, и железяка ваша. Сомневаюсь, что этот срок выбьет вас из напряженного графика, согласованного с крутым заказчиком..
С уважением,
Виктор.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Парни, а как в Atmel Studio 6 называется библиотека для ATmega32, которую в самом начале кода надо подключать?

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

Через программатор он отзывается как ATmega32, с signature 0x1E9502.
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 102
Зарегистрирован: Вт мар 22, 2011 22:31:01

Сообщение Errorkpi »

ut1wpr писал(а):согласованного с крутым заказчиком..
Разве ж я сам себе сроки не смягчу?
Думал может есть в Киеве уже привезенное (по приемлемой цене) +20..30 грн. я согласен переплатить, за "здесь и сейчас". Но если нет так нет...
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Errorkpi писал(а):
ut1wpr писал(а):согласованного с крутым заказчиком..
Разве ж я сам себе сроки не смягчу?
Думал может есть в Киеве уже привезенное (по приемлемой цене) +20..30 грн. я согласен переплатить, за "здесь и сейчас". Но если нет так нет...
Плохо же вы думаете о наших барыгах. :) Не станут они за 20-30...
Не колеблясь покупайте на Ибэе.
С уважением,
Виктор.
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Скорее 200-300% переплаты...
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 378
Зарегистрирован: Вс сен 11, 2011 12:35:11

Сообщение AVT-28 »

Добрый день, подкиньте плиза схемку дежурного режима.
Я тут устройство одно варганю и нужна дежурка.
Ну например пусть будет на Pic16f887.
Только вот проблема одна, есть 2 кнопки управления и 2 энкодера.
И новую кнопку никак не добавить т.к корпус спроектирован и все подогнано, оч долго все делалось. Я хотел бы например использовать кнопку стоп на вкл и выкл, если быстро нажать устройство включается если долго держать оно выключается.
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Трансформатор - выпрямитель - стабилизатор. Классика же. Обычно для дежурного режима немного нужно, поэтому и транс пойдет маленький - 0.5 - 1Вт. От него же можно запитать реле которое будет включать основное питание.
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

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

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

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

Из всего, что там лежит, прописал ссылку на эту m32def.inc библиотеку. Но, походу, не она. Тк контроллер раз 5 прошился. Но были сообщения о НеVerify флеш памяти и что-то в этом роде. Щас контроллер так же выждаёт такие ошиббки, а если отключить проверку флеш после программирования, то, вроде бы, всё хорошо зашивает, но прошивка не работает.
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Мikа писал(а):прописал ссылку на эту m32def.inc библиотеку
все правильно. этот файл и надо.
Ставим плюсы: )
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение 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.
ни как не разберусь с символами: ~, |, ||, &, &&, ^(я так понял инверсия)
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

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

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

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

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

---------------
а вообще это описано в любой книжке по программированию,не говоря уже о гуглепоиске "логические операции"
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение foton6 »

unalex спасибо. Все понятно.
Пару книг уже прочел, но теория плохо усваивается без практики.
Вот сейчас запомнившееся осваиваю на практике ))
Вроде заработало, вот только в данном исполнении программы за одно нажатие диод успевает раз 5 сменить свое состояние.
Ну вообщем это уже мелочи главное ясно как работать с пином.
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

за одно нажатие диод успевает раз 5 сменить свое состояние
так оно и будет - программа крутится в бесконечном цикле и пока кнопка нажата, светодиод будет неоднократно переключаться

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

...........
ну и не следует забывать о дребезге контактов
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение 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;
}
}
}
}
}
У меня работает на ура.
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Задержку забыл
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение 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); // от дребезга
  }
}
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение М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. Но как это правильно записать?
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

ldi tmp, high(RAMEND); Set Stack Pointer to top of RAM
out SPH, tmp;
ldi r16, low(RAMEND);
out SPL, tmp;
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

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