PIC монтаж програмиране помощ

G

Guest

Guest
Ами, аз съм за написването на програма за борда, които ще се контролира Пейнтбол пистолет.Въпреки това, аз да тичам в някои проблеми.Аз използвам PIC микроконтролер 12F675.Имам един светодиод закачен до ПИН-6 (GP1), така че "1" логиката на този ПИН ще доведе до включване на светлина.Имам да превключвате между VDD и ПИН-7 (GP0).Pin 7 е закачен до падащото резистор към земята.Програмата на завоите на LED за кратко време, когато се дръпне спусъка.Тя също има линия, че само позволява на светодиод да мига веднъж без значение колко дълго държите спусъка-това е необходимо за пейнтбол пистолета.Имам проверяват кода отново и отново, и аз не мога да намеря нищо нередно в това.Това е може би нещо по-просто, но не мога да го видя.Надявам се някой друг може да прихване нещо, което не мога да видя.
Ето програмата ....http://home.comcast.net/ ~ millersseven / timingtest.asm
Последно редактирано от Rambo на 15-ти Март 2005 9:06; Редактирано общо 1 път

 
Аз не разбирам проблема в кода?Какво ООН очакваното поведение на вашата програма?

 
Рамбо,

провери това (от Datasheet 12F675):

Забележка: Ансел (9Fh) и CMCON (19h)
регистри (9Fh) трябва да се инициализира с
Конфигуриране на аналогов канал като цифров
вход.Pins конфигуриран като аналогови входа ще
прочети '0 '.В Ансел регистъра е определена за
на PIC12F675.

с най-добри пожелания

 
Проблемът е, че програмата не е работа на всички.Светодиода не се включите, когато се представят на високо като принос за закрепване трябва.

CMan, аз не съм съвсем сигурен какво говориш.Не е ли един привеждане на входните щифтове за VDD счита за цифров вход?Мислех, че е само цифров вход, където за закрепване може да бъде прочетен по-високо или ниско (VDD или Vss).Аз съм доста нов в тези неща така че може да бъде погрешно обаче.

 
Здрасти,
Аз съм вече работи върху microntolller прекалено и е нов за това.Имам enoucnter такъв проблем преди ..Първо трябва да зададем ф ако сте сигурни, ф ф трябва да изтеглите програмата успешно в чип?За да се тества, U да напиша проста програма, която ще запали доведе изход на пристанището.

Направи ми да знам ..

 
Здрасти!

Какво C-Man каза е, че трябва да изключите аналогов сравнение и да преминат на пристанищата за Digital I / O (вместо на аналогови портове).По подразбиране в 12F675 е аналогов пристанища.

Само напишете на стойност от 7 до регистъра CMCON и 0 да се регистрирате Ансел или с други думи,
включи тази линии в началото:

movlw 0x07
movwf CMCON
BSF STATUS, 5
movlw 0x00
movwf Ансел
ФБК СТАТУС, 5

 
Ahhh, аз разбирам сега.Благодаря, момчета, аз ще ви каже, ако тя работи.

 
Ами, аз съм една стъпка по-близо да се подготвите за да работи.Решението ви даде ми направи определя 1 проблем, но сега имам друг.Когато се затвори и да превключите входа ПИН висока, електрическата крушка отива от разстояние за по подобен то рамо.Но проблемът е, че електрическата крушка остава завинаги и не изключите без значение какво ще направя.Единственото нещо, което мога да дам е, че по някакъв начин програмата става остана във времето линия и не излиза така, че никога не доведе се изключва.Някой друг видите нещо нередно?

 
Здрасти,
Това е, което пише ф
decfsz брой, 1; забавяне за да се доведе до по
Отидох в LOOP
decfsz count2, 1
Отидох в LOOPможе би да се опитате да видите дали това работи,

decfsz брой, 0; забавяне за да се доведе до по
Отидох в LOOP
decfsz count2, 0
Отидох в LOOP

виж, ако може да работи ..<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />
 
Ами, аз съм много близо да се подготвите за да работи сега.Аз актуализира програмата за връзката в горната част на страницата.Сега, той проверява за въвеждане на подобен то рамо и го превръща в доведе за правилното количество от време и след това изключва.Проблемът е, че някак си не се върнем към началото на програмата, за да се случи отново.Тя работи перфектно 1 време, но не работят след това.Погледнах през кода съвсем малко и не мога да видя къде е продължително застояване.Може би един от вас може да го види.Благодарности.

 
Само безусловно скок в началото на кода.

 
Да, мога да направя това, но има проблем.Трябва ми програма за миг само веднъж за всеки път, когато 1 I дръпна спусъка.Затова ми трябва някаква линия, след изпичане се прави така, че да не се върна, за да проверите за задейства (Switch), докато изтегля спусъка се пусне отново.Ако си спомняте по-рано казах тази програма ще бъде за пейнтбол пистолета.Ако не са на това условие, много смешен нещата ще се случи.

 
на първо място Ур програма е много трудно да се чете за board.the входа се задейства, когато си 0 Райт? тогава защо U добавите нещо като "subloop" няма смисъл, аз мисля.
doesn't го направи 2triggering.try изтриване
subloop и Гото то помага start.hope

 
Ще се опитам и да обясни защо ми трябва, че subloop малко по-добре и защо не може просто да безусловно да се върнете в началото на програмата.Сега, когато действително направи реална програма, аз отивам да има светодиод да се извършва за около 6 милисекунди-не ,3секунда, представена в програмата.Светодиода се задейства, когато отива на въвеждане на ПИН-високи.В много по-малко време за LED е мястото, където е проблем.Ако имах програма Връщам се в началото веднага след LED изключена, бих технически трябва да бъде в състояние да прокара и нека отидем на преминаване в по 6 милисекунди.И това е невъзможно.Така линия в долната част на програмата е да се запази на програмата празен до ключ се отпуснете се и въвеждане на ПИН обръща гръб на ниска.След основаването на въвеждане на ПИН отива ниско, то ще се върнем към началото на програмата и да изчакате още Switch тегли.Ако не са последната линия там и аз го държат ключа за по-дълъг от 6ms (което бих), тя би се превърнала светодиода отново за повече време, отколкото желания.И когато става въпрос за времето за пейнтбол пушки, той трябва да бъде доста точно.
Надявам се, че обяснява, че е малко по-добре.Аз не виждам нищо нередно с кода точно сега и съм го погледна над един тон от време и изглежда, че тя трябва да работи.Всякакви други предложения?

 

Welcome to EDABoard.com

Sponsor

Back
Top