Вы не вошли.
Vasil +1
------------
ps что тошнит,- то точно
Вне форума
Так вот, про РАБОТУ, а многие ли могут похвалиться, что она им в КАЙФ ? и совмещается ли с любимым делом?
Ну, во первых, сам всегда говорил, что продавец - собачья работа, и именное ей и занимаюсь уж далеко не первый год...
А поначалу ва-а-аще было - когда покупатели спрашивали про компьютерную "акустику" нечто типа "А какое качество звука?..." (ну и т.п.)
Почему когда мы нарушаем, нас штрафуют, а когда всё делаем правильно, с нас берут налоги?....
Вне форума
Нужно независимо управлять 4-мя вентиляторами с помощью ШИМ
Подскажите, какие МК из серии мега подойдут для этой задачи?
Вне форума
Народ, у кого-нибудь есть общее описание языка С для WinAVR ?? Такого, чтоб был описан общий синтаксис, типа переменных и проч. Что-нибудь типа AVR Assembler Help в AVRStudio.
В комплекте WinAVR идет только хелп к библиотекам (AVR Libc) .
У меня есть книжка Ю. Шпака, но она очень большая и в дежавю, пользоваться ей как справочником неудобно.
......There is someone in my head, but it's not me.......
Вне форума
Нужно независимо управлять 4-мя вентиляторами с помощью ШИМ
Подскажите, какие МК из серии мега подойдут для этой задачи?
неплохо узнать , чтоза вентиляторы и какая частота ШИМа нужна
Вне форума
Народ, у кого-нибудь есть общее описание языка С для WinAVR ?? Такого, чтоб был описан общий синтаксис, типа переменных и проч. Что-нибудь типа AVR Assembler Help в AVRStudio.
В комплекте WinAVR идет только хелп к библиотекам (AVR Libc) .У меня есть книжка Ю. Шпака, но она очень большая и в дежавю, пользоваться ей как справочником неудобно.
Есть стандарт ANSI C, пожалуй, это один из немногих стандартизированных языков. Разработчики IDE вводят "расширения" но их не так много, и можно разобраться . А основа, например тут:
linfoline.homedns.org/ansi-c/ansi-c.html#toc1
ЗЫ, по интернету "на каждом углу" висит "Руководство полного идиота по программированию на языке Си" Богатырев_а не ахти что, но мне трохи помогло
ЗЫ,ЗЫ структкрированный Си очень близок к ассемблеру, так что особого дискомфорта при переходе не должно быть. Только многие процедуры (правда, это Паскалевский термин) компилятор сделает на порядок быстрее, и, почти уверен, лучше..;)
ЗЫЗЫЗЫ, ну если конечно, задача не сводится к зажиганию светодиода в портУ..
Отредактировано Vasil (08.02.2008 21:43:29)
Вне форума
О, спасибо большое
Как раз то, что нужно. Пока что моя задача свелась к миганию светодиодом, но это только начало. Перезжаю с ассемблера на С.
......There is someone in my head, but it's not me.......
Вне форума
Удачи, -не так страшен черт, как видится
Вне форума
Осваиваю С в ускоренном темпе. Имеющийся опыт написания прог на ассме оч помогает.
Вопрос: Как в С организовать флаг для какого-либо события?? На ассме я делал так:
.def Flags = r20 ;регистр с флагами
.equ Flag_1 = 0 ;флаг 1
.equ Flag_2 = 1 ;флаг 2
.....................
А как на С ??
......There is someone in my head, but it's not me.......
Вне форума
По моему "понятию".
В общем случае флаг события, -это переменная только для данного события(произошло/ не произошло), которая может принимать два значения 1/0, т.е. переменная Булева, тип-bool. Мне не важно куда поместит ее компилятор, то ли в регистр, то ли ячейку памяти. Таким образом получается, что под один бит выделяется целый байт назовем так -"динамических ресурсов" контроллера- регистр/ячейка памяти. С другой стороны, можно поместить в один байт 8мь флагов(я так не делаю), но тогда придется программно производить проверку каждого бита на предмет установки/сброса, а это увеличение размера кода и времени выполнения. Вобщем, нужно смотреть, то ли рыбку есть, то ли...Если флаг должен быть "вИден" на протяжении всей "жизни" программы, его нужно объявить как глобальную переменную- снаружи main() например:
unsigned char flag_1, flag_2=1, .... flag_N;
main()
{ .............;
..............;
}
по умолчанию, всем глобальным переменным компилятор присваивает значение 0, если оно не присвоено как например, для flag_2.
Если переменная объявлена внутри тела ф-ции (локальная переменная), "область видимости" ограничена фигурными скобками, при выходе из ф-ции, ее значение может быть уничтожено, т.е. регистр/ячейка памяти
заняты другой переменной:
void function(void)
{
unsigned char flag_;
.............;
..............;
}
ИменА локальных переменных могут пересекаться, т.е. быть одинаковыми, но это, если уж совсем фантазии не хватает:). ИменА глобальных- уникальны.
Если что, пусть меня поправят, с температурой лежу(в смысле- по Цельсию и повышенной ), мог и не тогО наплести...
Отредактировано Vasil (10.02.2008 14:28:46)
Вне форума
[ Сгенерировано за 0.076 сек, 7 запросов выполнено - Использовано памяти: 603.73 Кбайт (Пик: 654.09 Кбайт) ]