А с какой это радости у Вас массив migalka[i] определятся внутри главного цикла? И определяется как то странно
А как нужно? Разве массив не должен быть внутри главного цикла? Просто кроме него ничего и нет.
P.S. Вроде понял, что к чему, переделал, но теперь почему-то светодиоды еле светят.
Походу запарка вот с этими строчками:
//PORTD=0x00; //DDRD=0xFF; Пришлось их закоменнтировать, иначе выдаёт ошибку и что-то не пойму, чего надо.
P.P.S
Всё, сделал. Надо было эти строчки после массива написать.
Буду пробовать, чтобы цикл прерывать и выполнять программу дальше.
...Разве массив не должен быть внутри главного цикла?
Объявление переменной и присвоение ей значения - это разные вещи. Но при объявлении переменной можно заоодно присвоить ей значение.
unsigned char i; // это объявление т.е. Вы говорите компилятору, что собираетесь использовать переменную размером в один байт, и что он должен воспринимать как беззнаковую.
unsigned char i = 123; // это тоже объявление, но с присвоением значения.
i = 234; // а вот это присвоение значения и ничего больше.
Очевидно, что объявить переменную можно только один раз. Поэтому объявление массива в цикле - это порнография.
Текст Вашей программы это набор инструкций для компилятора. В том числе, компилятору надо сказать, из каких программных модулей будет состоять Ваша программа. В ней должен быть главный программный модуль:
Объявление переменных можно делать как внутри этих модулей, так и вне их. Если переменную объявить внутри, то она будет "видна" только внутри своего модуля. Такие переменные называются локальными. Если программа по ходу дела зарулит в другой модуль, то она "забудет" локальную переменную из предыдущего модуля. Если переменная объявлена вне программного модуля, то она будет "видна" из всех модулей. Такие переменные называются глобальными.
А вот присвоение значений переменным можно делать только внутри этих программных модулей. То же самое для операций ввода-вывода.
SeregaT писал(а):
...Походу запарка вот с этими строчками: //PORTD=0x00; //DDRD=0xFF;
Ну ещё бы. Вы пытаетесь что-то делать - присваивать значения ВНЕ программного модуля. Надо сунуть эти строчки внутрь void main(void) и будет Вам счастье...
Вообще-то массив должен находиться в памяти контроллера В ОЗУ, ПЗУ или EEPROM. А вот объявляться может в разных местах. Тот большой кусок в Вашей программе с единицами и нулями это ОБЪЯВЛЕНИЕ массива с присвоением значений. Объявление может быть где угодно. Объявили внутри main - будет локальным. Объявили вне - будет глобальным. Видели строчку в Вашей программе:
// Declare your global variables here
?
Если сразу после неё сунете текст с объявлением массива, Ваш массив будет глобальным.
А в цикле идет РАБОТА с массивом. В цикле Вы извлекаете значение из очередного элемента массива и выпихиваете его через порт контроллера. А сам массив как сидит где-то в памяти, так и сидит себе...
Аксель А как вот ЭТО сделать? Как оно определяет угол поворота или типа того? Это на Си? Не могли-бы Вы показать исходник? Ну или в личку Вот так и совмещают микроконтроллер и швейную машинку
Я сейчас то-же сварганил USB программатор. Даже работает!!! Кстати, прошивает в 3,5 раза быстрее чем на COM (правда на COM у меня UniProf работала только в режиме "тормоз")
Осталось только выпилить по размеру и вставить в корпус (возьму от электронного транса для ламп). Ну еще шлейф поменять надо, был только широкий, его и поставил пока).
Подскажите пжалста такую штуку. Вот хочу сделать переходник для программатора, чтобы прошивать МК отдельно от всего (тоесть просто панелька с зажимом). Но хочу туда-же припаять кварц, чтобы прошивать МК, которые запрограммированы на внешний резонатор. Я с фьюзами пока толком не разбирался, но как я понял, достаточно выставить фьюзы на работу с внешним резонатором, и МК будет работать на частоте кварца? Или эту частоту то-же надо где-то выставить? Надо ли отключать внешний кварц, когда МК запрограммирован на работу с внутренним RC резонатором?
Сделал usb-to-lpt переходник из раздела "Интеграция с ПК". И понял я, что это хорошо. Он у меня теперь опционально может быть lpt или программатором stk200/300.
Переходник USB - LPT с сайта www.cncfiles.ru , файл 67. Как заявлено, обеспечивает почти 100% совместимость с реальным LPT. Очень удобно в использовании.
Вот там точно с описанием на понятном языке.
Скачал оттуда.
(Собрал не совсем придерживаясь схемы: кондёр другой вместо с4,резистора на ресет нет , подтягивающий резистор на 2.2 К И перемычки для себя: опционально первый пин / питание, и 2-12 3-11 (для определения как stk200/300 когда надо))
Тот программатор, который я сделал, то-же отлично работает, но (как я понял) он поддерживается только одной прогой. Хотя это не так важно, главное что он от USB работает. Хочу туда еще и USB флешку впаять (чтобы там держать нужный софт, прошивки и драйвера), если найду USB разветвитель с платой достаточно маленького размера.
Но идея с LPT USB мне понравилась
Можно проще, чем искать usb-hub (или делать самому) - чуть менее функционально, но быстро и практично: три переключателя. На питание, на D+, на D- . Или вариации на эту тему.
_________________ Скелет колобка состоит из черепа.
Можно проще, чем искать usb-hub (или делать самому) - чуть менее функционально, но быстро и практично: три переключателя. На питание, на D+, на D- . Или вариации на эту тему.
Ну вообще-то можно и так, но это неудобно, да и каждый раз разбирать корпус или выводить переключатели наружу... Проще флешку отдельно таскать
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения