![]() |
помощь по МК AT90S2313
Всем доброго времени суток.
Не буду лукавить и сразу скажу 2 важные вещи: 1) то о чем я прошу помощи является курсовой работой 2) я в этом абсолютно ничего не шарю) собственно то что нужно сделать: Цитата:
нужно в протеусе все смоделировать и т.д. но я в этом вообще не разбираюсь. |
Работа достаточно сложная (как для меня) Вообще я больше по класике : резисторы, конденсаторы....
Но коечто из моих "архивов" есть, смотрим, может чем нибуть поможет, надо же с чегото начинать :) :) есть 2 схемки сейчас постараюсь выложить, так как весит много. |
первая :
http://img.pixs.ru/thumbs/7/0/6/KBBM...656_460706.jpg вторая: http://img.pixs.ru/thumbs/7/1/8/MPBM...205_460718.jpg + есть архив с документацией download если ище что то найди или придумаю, сразу отпишу. ПЕРЕМЕСТИТЕ ТЕМУ В "СХЕМЫ И ПРОГРАММЫ" |
спасибо гляну.
|
меня что смущает, тебе либо двигатель шаговый юзать(+драйвера) либо неизвестный мне http://ru.wikipedia.org/wiki/Вентильный_электродвигате ь (яхзчто и как)
прогу наверное на асме придётся делать т.е бля какже обьяснить вот из асма тебе пригодится задержка(это типа когда подождать или когда двигатель врубаешь, но там хз может драйвер работать будет, кароче вот): Код:
;<<<<<<<<<<<<min задержка на минутудатчики, я хз какие у тя будут они аналоговые или цифровые, если аналоговые то придётся подрубать АЦП это так: ADC_IC: push var1 ;|заносим в стек in var1, pop var1 ;|из стека rcall sravn ;|вызыывем сравнение ret sravn: cp pred_zn, var ;|сравниваемданные ;если больше ;|с ножки АЦП с brsh motor_on ;|заданным числом rjmp end end: ret кароче типа вытаскивает из ацп сигнал и сравнивает если больше(так у меня у тебя по другому наверное) то переходит на подпрограмму мотор. если цифровые датчики(хз не работал, сам новичок) то просто там я думаю их к ножке подрубаешь и типа сигнал какойто в виде числа будет - хз лампочку врубать я думаю типа какойнить светодиод и врубается он просто подав еденицу на ножку типа или подав число на весь порт типа 0001 000 типа того. кароче у тебя есть две проблемы: нарисовать свою электрическую схему и сделать программу, активно собирай схему т.к. основное это) без неё не будет проги и потом утверди схему у препода потом тока за прогу садись. |
Sn@k3 спс.
буду думать. да, действительно, сначала важно схему утвердить. |
В каком виде должен быть результат, ну насчёт реализации всё в протиусе потяно, а насчёт кода (вам нужно "разжованный" asm !?) если нет то можно накодить на avr basic (pascal,c++)
|
ну как бы на асме все предыдущие студенты делали (смотрел примеры других вариантов)
но думаю это не принципиально. за код хз будут ли дрюкать) |
http://img193.imageshack.us/img193/9122/kurss.png
Вдруг забредут однокурсники - пусть будет завидно ;) P/S/ По просьбе ТС пока не выкладываю полную схему. Вот все равно, для меня остается загадкой этот пункт Цитата:
1. Причем тут поплавок? Концевик на вентили еще пойму но поплавок не в какую дыру 2. Какое ёпт прерывание использовать для него если думать что там поплавок (если думать что концевик на закрытие то прерывание нафик не нужно ну или если оч хочется то INT0)? Цитата:
- Слили Проявитель - начали наливать фиксаж (а что? мы не можем поплавком проверить закрыт ли клапан) - Ждем 10 секунд - если поплавок не отозвался значит фиксаж утекает через глючный клапан и пофигу что течет он в проявитель за 100$ литр, крепче будет ёпт. Что вообще курнул препод - когда составлял задание? |
Цитата:
немного не так))) включая то что у тебя датчики аналоговые будут стопудова т.к. дешовые, то вот процентов на 90 будет такое: ) Код:
;КОДп.с. вот твоя кнопка пуск както так будет выглядеть: Код:
EXT_INT0: ;кароче типа заносим какоето число на порт, тут можешь описать не для одного Б как у меня а для скольки хочешь) кароче любой код |
Цитата:
Код:
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************Цитата:
Цитата:
Цитата:
Код:
Main: |
Цитата:
бляяя ты спорить пришел? 1)моя разработка 2)узнай сначало что такое АЦП(аналогово-цифровой преобразователь, надеюсь он есть в контроллере, иначе покупаешь датчики свои не аналоговые а цифровые это раз, что дороже и что препод скажет иди лесом) 3)тем что читай 2 |
Цитата:
обоснуй свои слова насчет внешних прерываний 0_о это лучшие из прерываний, ты вообще это понимаешь? |
п.с. нету АЦП у тебя, значит берёмс цифровые всякие там датчики.
вот таблица прерываний твоя: Код:
Address Labels Code Comments |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
З.Ы. Нех меня упрекать в незнании Аналога и Цифры, поумерь пыл |
ребят, давайте жить дружно.
|
Цитата:
|
ну так и сказал что надо будет сделать сливной бачок как в унитазе :D не заметил слово-поплавок, увидел тока датчик) конечно же подумал что ДАТЧИК нужен) а не....
значить спортиь? спроси надо это мне? кстати, что значит из даташита ты взял таблицу прерываний?) я увидел только что там инклудится файлик в котором указаны адресса всей переферрии и прочего) таблицу ты сам указываешь. кароче забей) и ещё)) то что стоит после ; - типа комментарий) какбы чисто мусор никакой информации не несёт, у тя там кусок приведённый. |
Цитата:
дело в том что какраз в том инклуденом файле Присвоены названия для прерываний но если ты в AVR студии попытаешся использовать те прерывания которые дал то студия при компиляции матюгнетня на то что данное название ничему не присвоено. Короч мораль в том что не всегда ДатаШит есть хорошо и иногда следует смотреть в апноут =) Кстати Кнопку Пуск на прерывание вешать есть смысл только в том случае - если хочеш врубать и вырубать девайс одной кнопкой , короч в SLEEP контроллер загонять (Hi-Tech типо ;) ) Цитата:
2NetSter Вот видиш, у нас (в бывшем союзе) народ такой - пока не погавкаемся, общего знаменателя не достигнем |
Цитата:
долго я сидел с таким видом 0_о )))) ахахах!!! ахахаха!хахахахахахахааа!)) )!!!!!!!!!!! жесть) ахахахах!!!!! и с какого то боку он "матюкнётся" на слово rjmp(посмотри что такое это за команда и как она работает и посмотри что после этой команды) ?)))))) ахаха!!!!)) смотри, это не я придумал))) какбы) меня этому учили не от балды))) чесслова :DDD с каждым словом всё смешнее) а теперь открой файлик 2323def.inc и посмотри что внутри(*ROFL*) и тепеь подумй ещё раз и скажи что такое "таблица прерываний" :D думаешь я просто так отчитывал лабы чисто по прерываниям?) нененен) просто так говорить не буду)) кароче вывод знаешь немножко но пытаешься навязать свою неправильную политику) просто я сам новичок но какбы я свою работу делал))) в реальном проекте) и как бы вот) |
открыл и че?
Код:
.equ INT0addr=$001 ;External Interrupt0 Vector AddressКод:
Address Labels Code Commentsмы или думаем о разном или хз. И того или пишем таблицу и константы как нам хочется или используем то что имеем в *.inc/ Я вообще о том - что наименование констант в даташите и инклуде совершенно разные. З.Ы. уточнение. Я привык векторы писать так Код:
.ORG INT0addr ;Обработка прерывания INT0 |
п.с. обычно org обозначают один раз в проге reti тоже) в начале и в конце соответственно) ну а там хз. то что я кидал я даже не обработал...
|
| Время: 20:49 |