Pomoc kontroli servo za pomocą 16f877a z języka C

A

alexisjm_04

Guest
Czy ktoś może mi pomóc zbudować kod w C do sterowania siłownika? Mam 16f877a, 20xtal, PICC kompilator, palnik, serwo Futaba. Wiem, jak migać niektóre LED i użyć przycisku puch, aby włączyć diody ale chcę dowiedzieć się więcej o mcu, chcę włączyć serwa obrony na pozycji potencjometru. POT 5K jest podłączony do A0 PIC, przyciski na E0 i B0, port D zostanie ustawiony jako wyjście. Mogę się uczyć od np. za pomocą C tylko niestety. Mam nadzieję, że ktoś może zrobić mi kod tak, że mogę zacząć dla mojego projektu ... Z góry dzięki! Będę księgowania mój projekt po to jest zrobione. Pomoc proszę !...:)
 
może ktoś mi dać kod do sterowania 3 siłownik za pomocą pic i mikroC kody? dzięki ..
 
gdy; masz ten kod proszę o pomoc mee też jestem również stara się kontrolować tego samego silnika, a jeśli mam pierwszy wtedy dam wam ok
 
Sprawdź moje wideo, jeśli zainteresowany na to, powiedz mi umieścić kod tutaj (kod został napisany przez MikroC Pro) [url = http://www.youtube.com/watch?v=Pn-P7_lQMQc] YouTube - Motor Servo, Matlab GUI, MikroC PRO i Proteus [/url]
 
Tak .. Eng_Bandar .. Chciałbym badania układu i kodu źródłowego. Proszę mi pomóc. Używam tego następujące polecenia w PIC18F452 i jest OK. Chciałbym, aby zmienić PIC16F877A. Jak mogę to zmienić polecenia? Proszę mi pomóc, jeśli możesz. Dziękuję .... tmr0h = 0xFC; tmr0l = 0xee; INTCON = 0xa0; t0con = 0x87;
 
Myślę, że zarówno 16F877A i 18F452 ma wszystkie te same rejestry. Więc nic nie trzeba zmienić .. Będzie to działać z 16F877A.
 
Czy ktoś może mi pomóc zbudować kod w C do sterowania silnika serwo? Mam 16f877a, 20xtal, PICC kompilator, palnik, serwo Futaba. Wiem, jak migać niektóre LED i użyć przycisku puch, aby włączyć diody ale chcę dowiedzieć się więcej o mcu, chcę włączyć serwa obrony na pozycji potencjometru. POT 5K jest podłączony do A0 PIC, przyciski na E0 i B0, port D zostanie ustawiony jako wyjście. Mogę się uczyć od np. za pomocą C tylko niestety. Mam nadzieję, że ktoś może zrobić mi kod tak, że mogę zacząć dla mojego projektu ... Z góry dzięki! Będę księgowania mój projekt po to jest zrobione. Pomoc proszę !...:)[/CYTAT] chek go, nadziei pomocy u ... [Url = http://www.ccsinfo.com/forum/viewtopic.php?t=43117&highlight=hangs] CCS:: Zobacz temat - S / W wisi ....[/url]
 
Myślę, że zarówno 16F877A i 18F452 ma wszystkie te same rejestry. Więc nic nie trzeba zmienić .. Będzie to działać z 16F877A.
Hi gladiss, dziękuję odpowiedź. Myślę, że .. Są różne rejestry. W .. 16F877A .. nie ma tmr0h (lub) tmr0l, tylko tmr0. Proszę Jak mogę zmienić ..
 
Dzięki za wskazanie różnicy .. Niedo = 0xA0 pozostaje ten sam T0CON = Rejestr ten nie jest dostępny dla 16F877A. T0 Prescaler jest dzielona z WDT. Więc musiał ustawić OPTION_REG. OPTION_REG = 0x87 (Zakładając, że nie używasz WDT i PORTB wewnętrznych podciągnięć) TMR0H = Rejestr ten nie jest dostępny dla 16F877A. TMR0L = Rejestr ten nie jest dostępny dla 16F877A. Użyj TMR0. Jest to 8 Rejestr Bit. Wartość, którą chcesz ustawić jest 0xFCEE. Oznacza to, że Timer0 musi liczyć upto 0x311, co nie jest możliwe. Więc trzeba zrobić liitle bitowe kodowanie w Timer0 Rutynowe przerwań. 1. Pierwszy set Wartość TMR0 = 0xEE 2. Zadeklaruj zmienną globalną, powiedzmy Timer0TimeOut = 0. 3. Kiedy TMR0 przerwanie występuje Przyrost tej zmiennej, co oznacza, Timer0TimeOut = Timer0TimeOut +1 4. Sprawdź, czy (Timer0TimeOut> 4), to czas jest osiągnięty. Rób co chcesz tutaj ... jeśli wymagają pracy programatora ponownie, Reset zmiennej Timer0TimeOut = 0 TMR0 = 0xEE kontynuowanie procesu ...
 

Welcome to EDABoard.com

Sponsor

Back
Top