Отговори на тема  [ 10 мнения ] 
Помощ за програма 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение Помощ за програма
Опитвам се да подкарам схема за управление на униполярен стъпков двигател с два режима на работа, режим позиция и режим скорост. Съответно съм взаимствал от една програма и крайният резултат е напълно мое дело. Нов съм в програмирането и съм далеч от мисълта, че програмата ми е добре оформена и написана.
Да си дойдем на думата, програмата и схемата работят на симулация на протеус така както искам, но уви, след като направих печатната платка и монтирах елементите както си му е реда, при съживяването на схемата, мисля че в програмата има бъг, не тръгва така както на симулации.
Управлявам стъпковия двигател чрез матрична клавиатура, при избора на режим, програмата би трябвало да изчака натискане на един от два посочени бутона, но тя си избира сама някой от 2та бутана. Плед това програма пита за посоката на въртене, това работи коректно, изчакваме да въведа исканата ми посока. На края, в зависимост от режима, програма иска да въведа или брой стъпки или скорост на завъртане. На симулациите работи на практика започва да въвежда сама цифри.
Бих бил благодарен, ако на някой не му коства много усилие, да погледне програмата дали е написана като хората.
Използвам mikroC pro for PIC, едно от съмненията ми че програма на практика не върви е компилатора, понеже използвам готови функции.
Прикачени файлове:
circuit.jpg

Прикачени файлове:
code.txt


Чет Авг 30, 2012 6:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма
Хммм е днес не съм в настроение да чета точно такива програми, записи в тоя вид може и да са кратки и може би по спретното да изглеждат, но пък са ми досадни за четене, имам в предвид запис на един ред като if(....(if....))....));


Чет Авг 30, 2012 9:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: Помощ за програма
Проблема ти е, че смущенията от жиците (пистите) на клавиатурата, се възприемат като натиснат клавиш. Пробвай да четеш клавиатурата два пъти през опеделено време и ако резултата е различен, значи е смущение.


Пет Авг 31, 2012 8:20 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма
Абе от смущения чак такива неща да прави ... не знам, като гледам е сложил резистори към маса, не ги знам колко са, но ако и така иде смущение то ще е доста сериозно. Ако клавиатурата е с лентов кабел и няма разделителни маси, е възможно капацитивно да прехвърля самите сканиращи импулси. Като гледам къде е вързана може би ги опработва в прекъсване, затова ако случая наистина е такъв най-простото е да забрани прекъсването и да го разрешава извесно време след като е вдигнал съответния пин в 1, така ще се избегне ако е капацитивно. Ако са реални смущения, първо виж от къде идват, а след това си направи времева проверка. Не знам с каква честота сканираш тая клавиатура, но сравнително лесно може да реазлизираш някакъв времеви филтър от 50-100 мс то като имаш клавиатура винаги е желателно да го имаш. Като го пишеш имай в предвид че да изчакаш 50 мс и пак да провериш не е достатъчно, ако е смущение може пак да те излъже, добре е да проверяваш дали не се е променил за тия 50 мс, иначе ще върши работа но само за да разкараш трептенето на контакта на бутона. Най-ефикасно ще стане относо с прекъсване, само че ще си мениш фронта, нормално получаваш по преден, след като получиш го сменяш на заден, вдигаш някакъв флаг приемрно, нулираш един таймер и излизаш. Тук вече има два варианта, първи чакаш заден фрон, ако дойде и таймера е над определена стойност казваш че е натиснат бутон, така сигнала ти идва при отпускането а не самото натискане. Втори вариант някъде в тялото проверяваш тоя таймер, ако е по голям от нужното и флага ти е вдигнат казваш че имаш натиснат бутон, от там нататък може да свалиш флага, или пък само да затриеш таймера, като второто ще ти дава натиснат бутон през опредлеено време ако е натиснат и не е отпуснат, зависи как искаш да ти работи. Ако беше и един нормален контролер с прекъсване за всеки от тия входове ... но с малко хитрост става. Тук говоря за port_b change прекъсването.

Факта обаче че има място където не го прави този пробелм е по претеснителен, проблема със смущенията не е избирателен

едит : .. горе съм писал да мениш форнта на прекъсването .. то ако ти е на on change няма нужда, всяка промяна ти генерира прекъсване .. поне доколкото си спомням.


Пет Авг 31, 2012 8:48 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение Re: Помощ за програма
да, при прекъсване от портб е на всяка промяна, само за пб0 е по избирателен фронт


Пет Авг 31, 2012 9:29 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: Помощ за програма
ToHu написа:
Абе от смущения чак такива неща да прави ...
Ами аз не си ги измислям тези неща - патил съм точно от това. Освен това, човека казва, че кара степер с този контролер - там "пукотевиците" са си наистина сериозни.


Пет Авг 31, 2012 1:18 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма
Виж сега, смущенията са първият заподозрян, това което обаче ме притеснява е че в определена част от програмата не се случва, те такива смущения няма, или някак магически изчезват.


Пет Авг 31, 2012 8:56 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Дек 15, 2005 3:49 pm
Мнения: 8
Местоположение: Пловдив
Мнение Re: Помощ за програма
v.n.angelov, имаш ли филтриращи кондензатори до процесора, дисплея и драйвера (100nF)?

_________________
Винаги трябва да има известна доза мундарлък!!


Вто Сеп 04, 2012 11:15 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 14, 2012 12:48 pm
Мнения: 29
Мнение Re: Помощ за програма
Нямам!


Вто Сеп 04, 2012 2:33 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Дек 15, 2005 3:49 pm
Мнения: 8
Местоположение: Пловдив
Мнение Re: Помощ за програма
А трябва! От там ти идват всички мъки... :yawinkle:

_________________
Винаги трябва да има известна доза мундарлък!!


Сря Сеп 05, 2012 11:47 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни