| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Моля за малко помощ с елементарна програмка... http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=6283 |
Страница 1 от 1 |
| Автор: | kiler_4o [ Вто Ное 18, 2008 3:29 am ] | ||||||||||||||||||
| Заглавие: | Моля за малко помощ с елементарна програмка... | ||||||||||||||||||
добре, не мога да разбера, аз ли съм толкова прост или... не исках да пускам тема тук, защото знам, че на такива глупави и елементарни въпроси много се нервите, но няма начин вече ... направих 100000 проби с различни промени, прегледах незнам колко десетки примерни програми, изчетох целия хелп на PICC ... само книги за PIC C не съм чел, но и до там ще стигна ... НО ... това нещо ме побърка ... Искам да напиша елементарна програмка с цикъла for, която да премества едно серво от начално в крайно положение ... ок... първо направих с 2 цикъла, от начално до крайно и обратно... качих я в контролера - нищо ... сервото мърда с по една стъпка на 2 секунди... после мъчих само да го преместя от началото до края - по същия начин ... накрая написах програма 200 реда с по 10-тина реда импулси с различни широчини, само и само да разбера дали аз бъркам нещо със сервото или не ... еми сервото работеше ... явно проблемът е в цикъла for ... така... днес изтеглих Proteus и продължих с опитите ... накрая след много опити получих, че в моя код 1ms=100us ?!?!?!?! да... или поне така излиза според моите сметки - когато разделя s на 1000 получавам на осцилоскопа в Proteus импулси от по 0,1 до 0,2 ms, което по принцип не е логично ... както и да е ... ето Ви последния source код, с който получих поне преместване от -90 почти до 0 градуса на сервото и това се повтаря много пъти... накрая отива на +90 градуса и си остава там ... (не можах да разбера в крайна сметка и как да накарам програмата да се повтори)... И само ще Ви помоля да няма изказвания тип:
ще съм много благодарен ...
Благодаря предварително... Не знаете толкова елементарно нещо колко главоболия ми създаде... само тая вечер от около 2 часа го мъча... а това е третия път, в който се занимавам с тея сервота... |
|||||||||||||||||||
| Автор: | fan [ Вто Ное 18, 2008 4:52 am ] |
| Заглавие: | |
Ето ти нещо работещо и .. спи спокойно! void main() { unsigned long n=1,s=0; setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); set_tris_a (0xF7); for(;n<=100;n++) { s=10000+n*100; output_high(PIN_A0); delay_us(s); output_low(PIN_A0); delay_ms(20); } } |
|
| Автор: | kiler_4o [ Вто Ное 18, 2008 11:46 am ] |
| Заглавие: | |
Или компилаторът нещо си прави гавра с мен и не прекомпилира програмата (което ме съмнява), или и тази програма нещо не работи както трябва, или имам грешка в схемата... ще пусна после схемата, за да ми кажете къде е грешката (ако не я открия до тогава де), че сега нямам време (лекции)... |
|
| Автор: | kiler_4o [ Сря Ное 19, 2008 12:52 am ] |
| Заглавие: | |
ооо да Благодаря за помощта |
|
| Автор: | tgi [ Чет Ное 20, 2008 2:13 am ] |
| Заглавие: | |
За да накараш нещо да заработи, трябва първо да разбереш *защо* не работи. Което в случая предполага доста труд, предполагам, но *това* е начинът, по който го правят всички, които могат да го правят. Със сляпо бутане тук и там понякога също става, разбира се, то и някои лотарийни билети печелят. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|