Светодиодные фонари и световые приборы. Всё о светотехнике.
Изображения Дневники Группы Поиск
Вернуться   Форум FONAREVKA.RU Лаборатория Электроника и схемотехника Электроника Микроконтроллеры
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

— светодиодные фонари;
— различные источники питания;
— разнообразные зарядные устройства;
— освещение помещений и наружное освещение;
— световые приборы для личного, пассажирского и грузового транспорта;
— специальные световые приборы для медицины, для растений, для аквариумов, для террариумов, а также аварийно-сигнальные световые приборы;
— альтернативные источники света;
— лазеры и лазерная техника.

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Ответ  Создать новую тему
Просмотров в теме 49188   Ответов в теме 149   Подписчиков на тему 0   Добавили в закладки 0
Опции темы Поиск в этой теме
Старый 03.10.2010, 00:27 Автор темы   1
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию Микроконтроллеры для начинающих.

Здравствуйте. Нужна помощь AVR-программиста-сишника. Сам я, можно сказать, не программист, тем более на си. Но решил попытать счастья в программировании МК. Собственно моя первая конструкция - мигалка из пяти светодиодов. Вопрос собственно вот в чем: как заставить программу после выполнения начать выполняться сначала? Контроллер - ATTiny13.

Цитата:
void main() {
//=================================================================
PORTB.F0 = 0;
PORTB.F1 = 0;
PORTB.F2 = 0; // Выставляем все порты в 0.
PORTB.F3 = 0;
PORTB.F4 = 0;
//=================================================================
DDRB.F0 = 1;
DDRB.F1 = 1;
DDRB.F2 = 1; // Выставляем направление порта на выход.
DDRB.F3 = 1;
DDRB.F4 = 1;
//=================================================================
PORTB.F0 = 1; // Включаем первый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F0 = 0; // Выключаем первый светодиод.
PORTB.F1 = 1; // Включаем второй светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F1 = 0; // Выключаем второй светодиод.
PORTB.F2 = 1; // Включаем третий светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F2 = 0; // Выключаем третий светодиод.
PORTB.F3 = 1; // Включаем четвертый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F3 = 0; // Выключаем четвертый светодиод.
PORTB.F4 = 1; // Включаем пятый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F4 = 0; // Выключаем пятый светодиод.
while( 1 ); // Циклим программу. - чем заменить этот оператор, чтобы начать сначала?
//=================================================================
}
Все "нубские" вопросы предлагаю кидать в эту тему.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 00:31   2
SviMik
Завсегдатай Фонарёвки
 
Аватар для SviMik
 
Регистрация: 26.02.2010
Последняя активность: 18.08.2015 18:47
Сообщений: 810
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для SviMik с помощью ICQ Отправить сообщение для SviMik с помощью MSN
По умолчанию

Я не сишник, но думаю, как-то так
Код:
void main() {
PORTB.F0 = 0;
PORTB.F1 = 0;
PORTB.F2 = 0; // Выставляем все порты в 0.
PORTB.F3 = 0;
PORTB.F4 = 0;
//==================================================
DDRB.F0 = 1;
DDRB.F1 = 1;
DDRB.F2 = 1; // Выставляем направление порта на выход.
DDRB.F3 = 1;
DDRB.F4 = 1;
//==================================================
while(true){
PORTB.F0 = 1; // Включаем первый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F0 = 0; // Выключаем первый светодиод.
PORTB.F1 = 1; // Включаем второй светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F1 = 0; // Выключаем второй светодиод.
PORTB.F2 = 1; // Включаем третий светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F2 = 0; // Выключаем третий светодиод.
PORTB.F3 = 1; // Включаем четвертый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F3 = 0; // Выключаем четвертый светодиод.
PORTB.F4 = 1; // Включаем пятый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F4 = 0; // Выключаем пятый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
}
}
SviMik вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 00:49 Автор темы   3
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Я тоже думал что-то подобное, но компилятор это переваривать не хочет. Надо как-то перевести каретку в нулевой байт. Что-то типа JMP из ассемблера. Мне кажется так.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 00:53   4
SviMik
Завсегдатай Фонарёвки
 
Аватар для SviMik
 
Регистрация: 26.02.2010
Последняя активность: 18.08.2015 18:47
Сообщений: 810
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для SviMik с помощью ICQ Отправить сообщение для SviMik с помощью MSN
По умолчанию

Ну может не while(true), а while(1), не знаю, есть ли разница в сях. По идее обязан переварить А что пишет?
SviMik вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 00:56 Автор темы   5
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от SviMik :
Ну может не while(true), а while(1), не знаю, есть ли разница в сях. По идее обязан переварить А что пишет?
Огромное спасибо за ответ - вышел из положения таким способом:

Цитата:
void main() {
//=================================================================
PORTB.F0 = 0;
PORTB.F1 = 0;
PORTB.F2 = 0; // Выставляем все порты в 0.
PORTB.F3 = 0;
PORTB.F4 = 0;
//=================================================================
DDRB.F0 = 1;
DDRB.F1 = 1;
DDRB.F2 = 1; // Выставляем направление порта на выход.
DDRB.F3 = 1;
DDRB.F4 = 1;
//=================================================================
while( 1 ) { // Циклим программу.
PORTB.F0 = 1; // Включаем первый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F0 = 0; // Выключаем первый светодиод.
PORTB.F1 = 1; // Включаем второй светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F1 = 0; // Выключаем второй светодиод.
PORTB.F2 = 1; // Включаем третий светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F2 = 0; // Выключаем третий светодиод.
PORTB.F3 = 1; // Включаем четвертый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F3 = 0; // Выключаем четвертый светодиод.
PORTB.F4 = 1; // Включаем пятый светодиод.
Delay_ms( 1000 ); // Ждем 1 секунду.
PORTB.F4 = 0; // Выключаем пятый светодиод.
//=================================================================
}
}
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:08 Автор темы   6
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Радости полные штаны - моя первая прога . Завтра же начну паять программатор. Ели кому интересно - буду выкладывать результаты достижений.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:10   7
lasers_Hobbi TV
Ветеран Фонарёвки
 
Аватар для lasers_Hobbi TV
 
Регистрация: 14.02.2010
Последняя активность: 18.11.2015 19:18
Сообщений: 9050
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

По умолчанию

Цитата:
Посмотреть сообщение Сообщение от Lum1noFor :
моя первая прога
Поздравляю! А раньше было принято писать "Hello, world!".
__________________
моб.: +7-931-336-3737
e-mail: shop@hobbi.tv
lasers_Hobbi TV вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:15 Автор темы   8
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от Hobbi TV :
Поздравляю! А раньше было принято писать "Hello, world!".
Спасибо! Hello World я писал тогда, когда начинал программировать на Delphi. А в МК это уже не то. Кстати, сам научился пользоваться протеусом .
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:28   9
SviMik
Завсегдатай Фонарёвки
 
Аватар для SviMik
 
Регистрация: 26.02.2010
Последняя активность: 18.08.2015 18:47
Сообщений: 810
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для SviMik с помощью ICQ Отправить сообщение для SviMik с помощью MSN
По умолчанию

Пополнение в рядах программистов мк
Может перекличку устроить, кто на чём пишет.
Я под AVR на ассемблере.
SviMik вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:56 Автор темы   10
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Да какой из меня программист МК... Есдинственное, что я понял, это как "дергать ножками". И все.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 01:58   11
SviMik
Завсегдатай Фонарёвки
 
Аватар для SviMik
 
Регистрация: 26.02.2010
Последняя активность: 18.08.2015 18:47
Сообщений: 810
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для SviMik с помощью ICQ Отправить сообщение для SviMik с помощью MSN
По умолчанию

Lum1noFor Ну теоритически в будущем - почему бы и нет Главное начать. И сделать программатор
SviMik вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 02:04   12
lasers_yuri
Увлеченный
 
Аватар для lasers_yuri
 
Регистрация: 12.02.2010
Последняя активность: 15.02.2011 20:41
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

По умолчанию

Рекомендую почитать Кернигана и Ричи, "Язык программирования Си". Там не для МК, но синтаксис тот же.
__________________
lasers_yuri вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 02:12 Автор темы   13
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от SviMik :
Lum1noFor Ну теоритически в будущем - почему бы и нет Главное начать. И сделать программатор

Программатор для меня сделать - раз плюнуть, благо радиомонтажник из меня лучше, чем программист. А вот начать - это уже сложнее .


yuri, спасибо за совет.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 10:57   14
lasers_chem_kot
Завсегдатай Фонарёвки
 
Аватар для lasers_chem_kot
 
Регистрация: 13.03.2010
Последняя активность: 15.08.2015 05:45
Сообщений: 522
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_chem_kot с помощью ICQ
По умолчанию

Ну хэллоу ворд для МК это мигание одним светодиодом)))я с этого начинал))И программатор сначала был СТК200/300.. сейчас юзаю Си в WinAVR, программер - AVR910 USB
lasers_chem_kot вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 12:06 Автор темы   15
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от chem_kot :
Ну хэллоу ворд для МК это мигание одним светодиодом)))я с этого начинал))И программатор сначала был СТК200/300.. сейчас юзаю Си в WinAVR, программер - AVR910 USB

А меня бегущая дорожка из пяти светодиодов . Кстати, кто-нибудь может посоветовать схеку хорошего програматора? Чтобы шил ATTiny и ATMega.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 12:24   16
lasers_chem_kot
Завсегдатай Фонарёвки
 
Аватар для lasers_chem_kot
 
Регистрация: 13.03.2010
Последняя активность: 15.08.2015 05:45
Сообщений: 522
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_chem_kot с помощью ICQ
По умолчанию

Да они почти все их шьют, протокол то один. А из программаторов для начала можно STK200/300 на LPT, а потом можно собрать AVR910 по схеме Protoss'a
lasers_chem_kot вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 12:27 Автор темы   17
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от chem_kot :
Да они почти все их шьют, протокол то один. А из программаторов для начала можно STK200/300 на LPT, а потом можно собрать AVR910 по схеме Protoss'a

Начну, пожалуй, сразу с Протосса. Спасибо!
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 12:57   18
lasers_chem_kot
Завсегдатай Фонарёвки
 
Аватар для lasers_chem_kot
 
Регистрация: 13.03.2010
Последняя активность: 15.08.2015 05:45
Сообщений: 522
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_chem_kot с помощью ICQ
По умолчанию

Есть одно но - в нем тоже МК, и его надо прошить, возможно если программаторов вообще нет, придется спаять ЛПТ вилка+4 резистора+5проводов
lasers_chem_kot вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 13:03 Автор темы   19
lasers_Lum1noFor
Увлеченный
 
Регистрация: 14.02.2010
Последняя активность: 25.11.2018 13:03
Сообщений: 482
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для lasers_Lum1noFor с помощью ICQ
По умолчанию

Цитата:
Посмотреть сообщение Сообщение от chem_kot :
Есть одно но - в нем тоже МК, и его надо прошить, возможно если программаторов вообще нет, придется спаять ЛПТ вилка+4 резистора+5проводов

К счастью, есть знакомый хороший программист МК. У него какой-то покупной программатор. За 10 тысяч . Я бы такой не потянул.
lasers_Lum1noFor вне форума   Ответить с цитированием Вверх
Старый 03.10.2010, 13:15   20
SviMik
Завсегдатай Фонарёвки
 
Аватар для SviMik
 
Регистрация: 26.02.2010
Последняя активность: 18.08.2015 18:47
Сообщений: 810
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях

Отправить сообщение для SviMik с помощью ICQ Отправить сообщение для SviMik с помощью MSN
По умолчанию

Я использую FT232RL (по первой схеме) и доволен
http://easyelectronics.ru/s...
Для чего делать программатор на мк, который ещё сам в прошивании нуждается, когда есть готовая микросхема, отлично с этим справляющаяся.
ЗЫ. И заодно получишь переходник в UART как дополнительную функцию
SviMik вне форума   Ответить с цитированием Вверх
Ответ  Создать новую тему





Copyright ©2007 - 2024, FONAREVKA.RU

Powered by vBulletin®
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot

Правила форума | Отказ от ответственности

Время генерации страницы 0.12596 секунды с 17 запросами