помогите написать программу
Добрый вечер обитателям этого сайта.вот решился обратится к Вам за помощью,так как сам не умею этого делать).в общем есть необходимость в написании одной на мой взгляд не очень сложной программки.сам сейчас читаю один известный сайт и пытаюсь внедрится в это дело (программирование и написание программ)но когда это случится не известно(семья работа) а время идёт...и хочется делать интересные вещи.так что если кто откликнется на мою просьбу буду рад,да и освоение МК пойдёт быстрее если заниматься этим в живую на практике.суть моей программы изложу ниже,если найдутся желающие помочь. 
- Реклама
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
врятли вам кто нибудь поможет написать всю программу целиком,я сам сейчас пытаюсь изучить язык програмирования,пока успехов мало
НО КОГДА Я ПОПРОСИЛ НА ЭТОМ САЙТЕ НАПИСАТЬ ДЛЯ МЕНЯ ПРОГРАММУ,МНЕ ЗАЛОМИЛИ 4000 ЗА НЕЕ вот так,
хотя кто знает,может и найдутся добрые люди
НО КОГДА Я ПОПРОСИЛ НА ЭТОМ САЙТЕ НАПИСАТЬ ДЛЯ МЕНЯ ПРОГРАММУ,МНЕ ЗАЛОМИЛИ 4000 ЗА НЕЕ вот так,
хотя кто знает,может и найдутся добрые люди
Это не так сложно, как кажется. Главное учится, а не просто сидеть и хотеть.
Усложнять просто. Упрощать сложно.
А вы попросите на любом другом сайте написать вам программу, вам заломят не меньше. Вообще, форум подразумевает маленько другие отношения между участниками. Если вы спросите как написать тот или иной кусок программы, то вам непременно насоветуют кучу способов. А если вы просто просите написать вам всю программу целиком, при этом ничего не делая самому, то и получаете такие ответы. Кому интересно тратить свое время и силы просто так? Это во-первых, а во-вторых, даже если и кто-то и напишет, то пользу от этого получите только Вы, а осталные люди, читающие форум, не извлекут из него совершенно никакой пользы, а это не есть принцип форума. Вот как-то так...vovik15 писал(а):врятли вам кто нибудь поможет написать всю программу целиком,я сам сейчас пытаюсь изучить язык програмирования,пока успехов мало
НО КОГДА Я ПОПРОСИЛ НА ЭТОМ САЙТЕ НАПИСАТЬ ДЛЯ МЕНЯ ПРОГРАММУ,МНЕ ЗАЛОМИЛИ 4000 ЗА НЕЕ вот так,
хотя кто знает,может и найдутся добрые люди
- Реклама
само устройство очень банально.делаю в автомобиль(свой) кнопку стоп/старт.можно конечно сделать и на логике но сами понимаете размер устройства и сложность будут в разы больше. тем более я повторюсь пытаюсь изучать МК.и для меня это было не плохое начало с практического устройства.да и не плохо когда есть с кем посоветоваться.
прочитав кучу всякой информации остановил свой выбор на МК AVR а язык СИ.вот как то так).алгоритм работы устройства такой:
имеем кнопку на одно положение
выходы:
1)АСС
2)ЗАЖИГАНИЕ
3)СТАРТЕР
4)СВЕТОДИОД
5)возможно будут ещё какие нибудь сервисные зависит от алгоритма работы
входы:
1)КНОПКА
2)БЛОКИРОВКА РАБОТЫ ОТ СИГНАЛИЗАЦИИ
3)ПОЛОЖЕНИЕ АКПП
4)СТАТУС ЗАВЕДЁННЫЙ ДВИГАТЕЛЬ
5)ПЕДАЛЬ ТОРМОЗА
6)возможно будут ещё какие нибудь сервисные зависит от алгоритма работы
-в режиме охраны работа устройства не возможна(вх 2)
-снимаем с охраны разрешаем работу устройства мигает светодиод(вых 4)
- АКПП(вх 3) только в положении (Р) иначе запуск не возможен(вых 3)
- запуск(вых 3) возможен только при нажатой педали тормоза педаль тормоза(вх 5)
- в режиме запущенного двигателя(вх 4) стартер(вых 3) заблокирован
- первое нажатие кнопки(вх 1) 100мс включается АСС(вых 1)
- второе нажатие кнопки(вх 1) 200мс включается ЗАЖИГАНИЕ(вых 2)
- третье нажатие кнопки(вх 1) 500мс и более СТАРТЕР(вых 3) до отпускания
- либо включение всех режимов длительным нажатием 100мс(вых 1)+200мс(вых 2)+500мс(вых 3) стартер до отпускания или автоматическое отключение по заведённому двигателю
- выключение в обратной последовательности 100мс+200мс или при запущенном двигателе одно нажатие более 1с
время написано примерно думаю нужно подбирать экспериментально.
вот такой алгоритм работы.с удовольствием выслушаю замечания и советы.по поводу пользы "только себе".этот проект не является коммерческим,будет разрабатываться здесь и является полностью открытым для всех пользователей сайта.думаю будет интересен ни только мне. с уважением
прочитав кучу всякой информации остановил свой выбор на МК AVR а язык СИ.вот как то так).алгоритм работы устройства такой:
имеем кнопку на одно положение
выходы:
1)АСС
2)ЗАЖИГАНИЕ
3)СТАРТЕР
4)СВЕТОДИОД
5)возможно будут ещё какие нибудь сервисные зависит от алгоритма работы
входы:
1)КНОПКА
2)БЛОКИРОВКА РАБОТЫ ОТ СИГНАЛИЗАЦИИ
3)ПОЛОЖЕНИЕ АКПП
4)СТАТУС ЗАВЕДЁННЫЙ ДВИГАТЕЛЬ
5)ПЕДАЛЬ ТОРМОЗА
6)возможно будут ещё какие нибудь сервисные зависит от алгоритма работы
-в режиме охраны работа устройства не возможна(вх 2)
-снимаем с охраны разрешаем работу устройства мигает светодиод(вых 4)
- АКПП(вх 3) только в положении (Р) иначе запуск не возможен(вых 3)
- запуск(вых 3) возможен только при нажатой педали тормоза педаль тормоза(вх 5)
- в режиме запущенного двигателя(вх 4) стартер(вых 3) заблокирован
- первое нажатие кнопки(вх 1) 100мс включается АСС(вых 1)
- второе нажатие кнопки(вх 1) 200мс включается ЗАЖИГАНИЕ(вых 2)
- третье нажатие кнопки(вх 1) 500мс и более СТАРТЕР(вых 3) до отпускания
- либо включение всех режимов длительным нажатием 100мс(вых 1)+200мс(вых 2)+500мс(вых 3) стартер до отпускания или автоматическое отключение по заведённому двигателю
- выключение в обратной последовательности 100мс+200мс или при запущенном двигателе одно нажатие более 1с
время написано примерно думаю нужно подбирать экспериментально.
вот такой алгоритм работы.с удовольствием выслушаю замечания и советы.по поводу пользы "только себе".этот проект не является коммерческим,будет разрабатываться здесь и является полностью открытым для всех пользователей сайта.думаю будет интересен ни только мне. с уважением
- Сообщения: 41
- Зарегистрирован: Пн дек 21, 2009 15:16:31
охо......столько то задач себе наставили и все сразу.......Сергей_842 писал(а):само устройство очень банально.)
ну чтож....
задачу разбиваете на несколько составных:
а именно-1 научитесь для начала настраивать мк на принятие входных данных
2-подрыгать ногами мк то есть переводить его в одно из состояний
3- у вас тамо задуманы функции связанные со временем значит пользоваться пользоваться таймерсчечтиком внутренним
ну и после всего этого все три вместе задачи когда объедините получиться ваше устройство...
а вапще сначала бы неплохо было бы составить схемку нарисовать её( рекомендую прогуглиться и найти программку PROTEUS- вы тамо сможете сотворить эл схему на стадии проектирования и посмотреть её работу и проверить корректность работы программы еще ничего не делая в железе там же нарисовать платку и посмотреть какой она даже будет в 3Д) ваша задача сильно упроститься и ускориться с ней.
при этом получите драгоценный опыт в написании программ для мк,
а когда прочитаете ещё и даташит на используемый мк то скорей всего ещё захочется прикрутить к своему устройству вольтметр для контроля зарядки аккумулятора. лиха беда начала.......было бы желание.....
так же в нете есть обучалки написания программ на си для аврок прочитав которые через пару дней (а то и быстрей) уже сможите вполне чего нить накалякать.... которое худо бедно но будет уже работать ак вы хотите!!!
вот после этого у вас появятся вполне конкретные вопросы чего и как...и почему....ну тогда ия думаю начнут и ответы на них писать конкретные....
с уважением
- Сообщения: 41
- Зарегистрирован: Пн дек 21, 2009 15:16:31
.....прочтите что я написал ....и сделайте как я рекомендовал(а именно найдите протеус ...а уроки вполне неплохие для понимания и для изучения си для аврок см. например avr_123.nm.ru, как уже писал 2 дня и вы уже будите понимать как и чего писать,тамо на мой взгляд ключевые моменты для освоения мк ). удачи!vovik15 писал(а):врятли вам кто нибудь поможет написать всю программу целиком,я сам сейчас пытаюсь изучить язык програмирования,пока успехов мало
НО КОГДА Я ПОПРОСИЛ НА ЭТОМ САЙТЕ НАПИСАТЬ ДЛЯ МЕНЯ ПРОГРАММУ,МНЕ ЗАЛОМИЛИ 4000 ЗА НЕЕ вот так,
хотя кто знает,может и найдутся добрые люди
В топку этот nm, где тебе всё время что-то впаривают, вот адекватный материал
Усложнять просто. Упрощать сложно.
1.Поставить ключ для управления подсветкой
2. выделить ногу, чтобы подключить ключ
3. дописать пару-тройку команд управления ногой/ключем
все.
2. выделить ногу, чтобы подключить ключ
3. дописать пару-тройку команд управления ногой/ключем
все.
- Сообщения: 41
- Зарегистрирован: Пн дек 21, 2009 15:16:31
Значиться ваша задача.....раскладывается на две более простые задачки.......1 это обработка события по какому нибудь порту мк а для этого...вы в теле программы должны будите опрашивать порт мк на предмет изменения его состояния- нажата ли ваша пресловутая кнопка или нет...соответственно вы должны знать каким логическим уровнем будет это событие...то есть нажал кнопку на входе мк будет высокий лог. уровень ...или нажал кнопку низкий лог.уровень.....Thrasher писал(а):А не подскажете что нужно прилепить к программе цифрового термометра с ЖК индикатором , чтобы подсветка индикатора включалась программно после нажатия на кнопку (контроллер ATtiny2313, ЖК WH1602B-Winstar)
а вот после этого как вы обработали событие нажатия кнопки то есть изменения состояния опрашиваемого порта..выполняите 2 задачу по обработке этого события то есть изменяете состояние уже выхода мк на котором сидит подсветка (то есть включили светодиод, подали напряжение на транзистор ..да что угодно вашей в принципе фантазии).... сразу обращаю ваше внимание кнопка это элемент который не сразу нажал и она мгновенно перескочила в другое устойчивое состояние (имеется ввиду включено отключено) ей свойственно дребезжание контактов а так же искрение их.....и этот переходной процесс у кнопок он от 01 мсек(милисекунд) до 0.3.. а то может и больше ..поэтому это дело либо кондером решают либо как обычно уже делают программно.....существует несколько способов программно решить эту траблу (вот адин например из них----как только поймали изменение лог уровня порта то делаете паузу на время переходного процесса в кнопке (ожидаете 0.3 милисекунды) и потом заново опрашивете порт и если апосля этого состояние порта все таки поменялось - то значит кнопка нажата...
- Сообщения: 41
- Зарегистрирован: Пн дек 21, 2009 15:16:31
угу...лишьба на пользу....Thrasher писал(а):ujin спасибо за подробное описание
хотел было дописать до конца да не успел вот.... у бальничку пора нужна была......так вот дальше код на си куда меньше чем я старался описать сие действия.....
1 значит обработка кнопки с функцией подавления дребезга....
пишем такую конструкцию она без всяких вывертоф....понятна и проста как автомат калашникава..))....кнопочка коротит вход на землю, где х вы уже догадались это буква используемого порта а х1..ето собсвенно ножка этого порта на каторой сидит кнопка.
...if (PINx.x1==0) - проверяем а не нажата ли в данный момент кнопка и если да то выполняем цикл
{ delay_ms(3); а это и есть цикл в катором мы указываем сделать задержку на 3 милисек. как раз пока идет переходной процесс
if (PINx.x1==0) еще раз проверяем кнопку после задержки
{ PORTx.x1=1; }; выполняем что надо сделать по событию нажатия кнопки
if (PINx.x1==0)
{ delay_ms(3);
if (PINx.x1==0)
{ PORTx.x1=1; };
}; всего 4 строчки и все!!
собственно вот вся конструкция незабываем перед этим соответствующие порты и ноги их настроить на вход а другой как выход.
Соответственно это тока часть конструкции(потому что то вам явно захочется ещё и не только включить подсветку но и погасить её---тут опять варианты или использовать эту же кнопку что более целесообразно (в программе нужно будет сотворить ещё и триггер что бы изменять состояние выхода по нажатию адной и той же кнопки) или другой кнопкой гасить подсветку дополнив такую же конструкцию для другого входа по каторому будете просто гасить подсветку.
Земляк, если время не много, и писать будешь не суперпроекты попробуй Баском Авр. Очень легко и просто. Если есть хоть какие-то познания в бейсике то к концу дня уже напишешь свою программу!пытаюсь внедрится в это дело (программирование и написание программ)но когда это случится не известно(семья работа) а время идёт...и хочется делать интересные вещи
как я понял СИ самый оптимальный вариант,сейчас изучаю сайт в этом направлении и голова уже пухнетkip96 писал(а):Земляк, если время не много, и писать будешь не суперпроекты попробуй Баском Авр. Очень легко и просто. Если есть хоть какие-то познания в бейсике то к концу дня уже напишешь свою программу!пытаюсь внедрится в это дело (программирование и написание программ)но когда это случится не известно(семья работа) а время идёт...и хочется делать интересные вещи
- Сообщения: 41
- Зарегистрирован: Пн дек 21, 2009 15:16:31
обязательно найдите книгу Лебедева "Kode Vizion AVR" или скачайте ее это сильно поможет вашему пониманию языка си и как им пользоваться в cvavr.Сергей_842 писал(а):как я понял СИ самый оптимальный вариант,сейчас изучаю сайт в этом направлении и голова уже пухнетkip96 писал(а): Земляк, если время не много, и писать будешь не суперпроекты попробуй Баском Авр. Очень легко и просто. Если есть хоть какие-то познания в бейсике то к концу дня уже напишешь свою программу!,если начать изучать ещё бейсик то думаю она взорвётся
.но всё равно спасибо буду иметь в виду.



