Страница 4 из 9
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 22:20:05
HHIMERA
YS писал(а):
Да не, фузы мы не трогали. Я говорю про само понимание процесса.
Процесса чего... одурманивания???
Я так понял, вы и сами не знаете, что такое CMSIS. Ну так я вам расскажу.
Угу... "Фонарь дэтэктэд!"(С)...
Что там у нас в файлах CMSIS??? О ужас!!! Хедер!!! Срочно писать своё!!! "Только хардкор!"(С)
На ПИК/АВР тоже хедер самому писать нужно???
А пока не надо грузить его вещами, не относящимися к сути.
Грузят всякоразные кухарко-учителя... Особенно если суть сводится только к лэйбе Атмэл...
От которых у начинающего рябит в глазах.
Какое отношение это имеет к ядру??? Никакого!!!
Что там у нас по документации на ПИК24??? Да почти один в один... если не хуже!!!
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 22:55:43
YS
Процесса чего... одурманивания?
Э-э-э, ну это уже и правда холиваром попахивает. Да и топикстартер пропал.
Ну что поделать, бывает, что человек молится только на одну архитектуру и считает, что все остальное - недостойное говно.

С опытом разработки это проходит.
Так что ладно, наверное мне стоит пожелать вам успехов.

А я продолжу свободно использовать любое из знакомых мне семейств по мере необходимости и осваивать новые. Вот продукцию NXP я еще не пробовал, и Stellaris от TI тоже...
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 23:14:45
HHIMERA
YS писал(а):С опытом разработки это проходит.
Не проходит, а ПРИХОДИТ!!!
Сейчас STM самые оптимальные по всем параметрам... для большинства приложений... исключения не в счёт...
Ничего страшного в этих STM32 нет... все эти страшилки надуманные...
А я продолжу свободно использовать любое из знакомых мне семейств по мере необходимости и осваивать новые. Вот продукцию NXP я еще не пробовал, и Stellaris от TI тоже...
У меня уже всё это позади...
Даже с точки освоения NXP или Stellaris от TI... С чего легче будет переходить... с STM32 или Мега16??? То-то!!!
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 23:37:08
YS
Не проходит, а ПРИХОДИТ!
Именно проходит. Когда-то я тоже считал, что AVR круче всего, как вы сейчас считаете, что STM32 круче всего - это было оттого, что я просто не знал ничего другого.

Познакомился еще с пятком семейств - и стал относиться ко всему гораздо спокойнее...
Это все пройдет, когда уровень разработок заставит всерьез задуматься об исключениях, которые сейчас для вас "не в счет".
Ничего страшного в этих STM32 нет... все эти страшилки надуманные...
А я говорил, что они страшные? Я только утверждаю, что они не слишком подходят для старта. Начинать можно и с них, просто если сразу взяться серьезно, начиная с нуля, мозг раскалится гораздо сильнее, чем если начать с MSP430/PIC или подобного.
Даже с точки освоения NXP или Stellaris от TI... С чего легче будет переходить... с STM32 или Мега16??? То-то!!!
На самом деле, если навык уже выработан, разницы нету. Опять же, с опытом приходит понимание, что все МК одинаковые (ну, наверное, за исключением экзотики типа Propeller) - непреодолимые барьеры между семействами мерещатся только пионерам.

Неважно, сколько там бит в шине, принципы одни. А существенные трудности в осознании нового семейства после уже имеющегося опыта работы с каким-то другим говорят только о недостатке фундаментальных знаний, которых как раз и не дает освоение "с наскока".
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 23:42:53
oleg110592
Вот продукцию NXP я еще не пробовал, и Stellaris от TI тоже
Stellaris теперь называется TIVA, если так много времени пробовать, порекомендую попробовать еще микроконтроллеры Nuvoton Cortex™-M0
http://www.nuvoton.com/NuvotonMOSS/Comm ... 3449500ce7
цена очень гуманная - 0.3$ (в России 0.4$)
Re: вопросы полного чайника
Добавлено: Вс июн 08, 2014 23:44:52
YS
если так много времени пробовать, порекомендую попробовать еще микроконтроллеры Nuvoton Cortex™-M0
Потому пока и не попробовал, что со временем туговато.

Но спасибо за совет насчет Nuvoton.
Re: вопросы полного чайника
Добавлено: Пн июн 09, 2014 00:00:31
HHIMERA
YS писал(а):
Именно проходит. Когда-то я тоже считал, что AVR круче всего, как вы сейчас считаете, что STM32 круче всего - это было оттого, что я просто не знал ничего другого.

Познакомился еще с пятком семейств - и стал относиться ко всему гораздо спокойнее...
Приходит... приходит... Что весь этот зоопарк МК и компиляторов в большинстве случаев избыточен...
В этом и состоит спокойствие...
Это все пройдет, когда уровень разработок заставит всерьез задуматься об исключениях, которые сейчас для вас "не в счет".
"не в счет" потому что такие задачи типа "иначе никак" редки... а реализация их не составляет труда... Мега, ПИК24 или новые ПИК16... какая разница...
Но если это всё легко реализуется на STM... то к чему все эти извращения???
А я говорил, что они страшные? Я только утверждаю, что они не слишком подходят для старта. Начинать можно и с них, просто если сразу взяться серьезно, начиная с нуля, мозг раскалится гораздо сильнее, чем если начать с MSP430/PIC или подобного.
Для новичка всё страшно... Но судя по инету... освоение STM32 не такая уж сложная задача... как некоторым кажется...
На самом деле, если навык уже выработан, разницы нету.
Нету... Кроме того, что новичку новый компилятор придётся осваивать... к разнице в периферии... и другому даташиту...
А в случае с Cortex всё проще... Кейл или ИАР... и разница в периферии...
Re: вопросы полного чайника
Добавлено: Пн июн 09, 2014 00:24:46
Rtmip
спасибо, понятно, мне пока не подходит
oleg110592 и Вам спасибо

Re: вопросы полного чайника
Добавлено: Пн июл 07, 2014 09:33:05
Sam85
доброго времени суток

собрался прошивать свой первый МК uniprof ом, как выставить фусы что бы МК не навернулся ?
МК 8мега
Re: вопросы полного чайника
Добавлено: Пн июл 07, 2014 11:33:25
YS
как выставить фусы что бы МК не навернулся ?
Лучше вообще их не трогайте, если не уверены, что это вам надо.
И вот тут почитайте, специально для таких случаев писал.
Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 03:46:13
Sam85
YS писал(а):как выставить фусы что бы МК не навернулся ?
Лучше вообще их не трогайте, если не уверены, что это вам надо.
И вот тут почитайте, специально для таких случаев писал.
благодарю за полезную статью

Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 11:23:36
YS
Не за что, не за что.

Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 11:49:18
Sam85
В свободное от работы время пишу тестовые программки, заливаю в МК. Не поглядите в чем дело ? По замыслу при нажатии кнопки ( PORTD.0) светодиоды (PORTB.1-3) горят по очереди с задержкой 4 сек, при отпускании горят с той же задержкой, но в обратном порядке с 3-1. Но в реале, при нажатой кнопке горит крайний диод а два других по замыслу включаются, при отпускании кнопки загорается диод с другого края а два работают как надо ?
Сам код
Код: Выделить всё
while (1)
{
if(PIND.0==1)
{PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
delay_ms(4000);
PORTB.1=0;
PORTB.2=1;
PORTB.3=0;
delay_ms(4000);
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
}
else
{PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
delay_ms(4000);
PORTB.1=0;
PORTB.2=1;
PORTB.3=0;
delay_ms(4000);
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
}
}
}
Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 13:00:26
YS
Первое - использовать компиляторо-специфичные костыли вроде PORTB.x крайне не рекомендуется. Это плохой стиль. Следует использовать битовые операции и сдвиги.
Сам код
Существует тег code, используйте его.
Не поглядите в чем дело ?
Вам тут нужен конечный автомат. Я написал (под AVR GCC в AVR Studio 4, но портировать не составит труда) для вас этот пример и потестил его в Proteus:
Код под спойлером.
Спойлер
Код: Выделить всё
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
#define LED1 (1<<PB1)
#define LED2 (1<<PB2)
#define LED3 (1<<PB3)
#define BUTTON_PIN (1<<PD0)
#define ANIMATION_DELAY_MSEC 4000
#define ANIMATION_STOP 0
#define ANIMATION_FORWARD 1
#define ANIMATION_BACKWARD 2
static volatile uint8_t animation_type=ANIMATION_STOP;
static volatile uint8_t last_pind_state=0;
void main(void)
{
DDRB=LED1 | LED2 | LED3;
PORTB=LED1;
DDRD=0;
last_pind_state=PIND;
while (1)
{
if (PIND!=last_pind_state)
{
if (PIND & BUTTON_PIN)
{
animation_type=ANIMATION_BACKWARD;
}
else
{
animation_type=ANIMATION_FORWARD;
}
last_pind_state=PIND;
}
if (animation_type == ANIMATION_FORWARD)
{
PORTB|=LED1;
_delay_ms(ANIMATION_DELAY_MSEC);
PORTB&=~LED1;
PORTB|=LED2;
_delay_ms(ANIMATION_DELAY_MSEC);
PORTB&=~LED2;
PORTB|=LED3;
animation_type=ANIMATION_STOP;
}
if (animation_type == ANIMATION_BACKWARD)
{
PORTB|=LED3;
_delay_ms(ANIMATION_DELAY_MSEC);
PORTB&=~LED3;
PORTB|=LED2;
_delay_ms(ANIMATION_DELAY_MSEC);
PORTB&=~LED2;
PORTB|=LED1;
animation_type=ANIMATION_STOP;
}
}
}
Я сознательно не использовал прерываний.
Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 14:11:06
ARV
YS писал(а):Первое - использовать компиляторо-специфичные костыли вроде PORTB.x крайне не рекомендуется. Это плохой стиль. Следует использовать битовые операции и сдвиги.
а что же в вашем примере нет этих самых сдвигов? собственно, и конечный автомат немножко притянут за уши... если я верно понял, то нужен "бегущий огонь", меняющий направление в зависимости от состояния кнопки?
Код: Выделить всё
unsigned char mask = LED1;
while(1){
PORTC = mask;
delay_ms(ANIMATION_DELAY_MSEC);
if(PIND & BUTTON_PIN){
mask <<= 1;
if(mask > LED3) mask = LED1;
} else {
mask >>= 1;
if(mask==0) mask = LED3;
}
}
как-то так, по-моему...
Re: вопросы полного чайника
Добавлено: Вт июл 08, 2014 15:12:00
YS
а что же в вашем примере нет этих самых сдвигов?
Есть, собственно, я и рекомендовал их использовать вместо нестандартных расширений.
если я верно понял, то нужен "бегущий огонь", меняющий направление в зависимости от состояния кнопки?
Не знаю, я так понял, надо чтобы этот огонь бежал одноразово, т.е., кнопку нажали - огонек сделал так:
о--
-о-
--о
и остался в этом состоянии, пока кнопка нажата. Когда кнопку отпустили - обратно
--о
-о-
о--
и остался в таком состоянии, пока кнопку опять не нажмут.
конечный автомат немножко притянут за уши...
Возможно, есть и более простые пути. Но я понял ТЗ именно так, как изложил выше; кроме того, конечный автомат я применил в большой степени в дидактических целях.

Re: вопросы полного чайника
Добавлено: Ср июл 09, 2014 04:00:36
Sam85
благодарю за объяснения

Re: вопросы полного чайника
Добавлено: Ср июл 09, 2014 11:51:32
YS
Не за что.

Re: вопросы полного чайника
Добавлено: Чт июл 10, 2014 21:36:26
BenTech
Вечер добрый, хочу задать вопрос, как раз в теме про чайников =)
Вопрос 1. Как грамотно подключить к attiny2313(либо atmega8 не принципиально), автомобильное 12В реле. Набросал вот такую схему...

реле коммутирует цепь управления электробензонасосом.
Вопрос 2. Как наиболее надежно и наименее геморройно дать понять микроконтроллеру о наличии/отсутствии 12В. Проще говоря, необходимо врезаться в 12В проводку автомобиля и стырить оттуда наличие/отсутствие напруги в проводе.
Вопрос 3. Имеется микроконтроллер, считающий некую инфу внутри себя(счетчик). Необходимо вывести значение этого счетчика на LCD или сегментный индикатор не суть. Проблема, что у считающего МК не хватает ног для этого. Можно ли отправить данные с одного МК на другой (например с тина на мега8) по двум проводам например? Что-то типа пакетной передачи данных?
Re: вопросы полного чайника
Добавлено: Чт июл 10, 2014 21:50:16
YS
Набросал вот такую схему...
Нормально.
Как наиболее надежно и наименее геморройно дать понять микроконтроллеру о наличии/отсутствии 12В. Проще говоря, необходимо врезаться в 12В проводку автомобиля и стырить оттуда наличие/отсутствие напруги в проводе.
Поставить делитель и на всякий случай защитить ножку МК стабилитроном (поставить стабилитрон параллельно нижнему плечу делителя).
Проблема, что у считающего МК не хватает ног для этого.
В таких случаях ножки наращивают сдвиговыми регистрами. Например, 74HC595.