Rizene PWM joystickem

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

Rizene PWM joystickem

#1 Příspěvek od endthe »

Zdravim chtel sem udelat rizeni serva pomoci joysticku
pouzivat ATmega128 a pwm OCR3A a OCR3B

resim to takto

Kód: Vybrat vše

#define ADC_VREF_TYPE 0x40 
#define F_CPU 14745600
#include "main.h"
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/sfr_defs.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/delay.h>
#include "delay_1ms_u16.h"

int main (void)
{

int prepocetH=90;
int prepocetL=90;
DDRE = 0x18; //povoleni portu PE3 a PE4 jako vystup PWM (OC3A a OC3B)
ICR3=18432;
TCCR3A=0xA0;
TCCR3B=0x12;     
TCNT3H=0x00;
TCNT3L=0x00;
OCR3A=1323;
OCR3B=1323;

PORTG = (1<<PG3)|(1<<PG2)|(1<<PG1)|(1<<PG0);
DDRG = (1<<DDG3)|(1<<DDG2)|(1<<DDG1)|(1<<DDG0);
PING=(1<<PING3)|(1<<PING2)|(1<<PING1)|(1<<PING0);

while(1) {
         if (bit_is_clear(PING,0)){
               prepocetH+=10;
            _delay_ms(200);
                };
         if (bit_is_clear(PING,1)){
            prepocetH-=10;
            _delay_ms(200);
              };
         if (bit_is_clear(PING,2)){
            prepocetL+=10;
            _delay_ms(200);
              };
         if (bit_is_clear(PING,3)){
            prepocetL-=10;
            _delay_ms(200);
              };
             if(prepocetH>=180) prepocetH=180; 
         if(prepocetL>=180) prepocetL=180;
         if(prepocetH<=0) prepocetH=0;
         if(prepocetL<=0) prepocetL=0;

         //prepocet uhlu na ciselnou hodnotu OCR3A
         OCR3A=525+(prepocetH*8.8888888);          //min 922 max 1842
         OCR3B=525+(prepocetL*8.8888888);          //min 922 max 1842
   }
}


ale je problem ze mi jede jen OCR3B a to druhe PWM nechce frcet poradi nekdo?
Naposledy upravil(a) endthe dne 10 kvě 2010, 20:50, celkem upraveno 1 x.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#2 Příspěvek od Andrea »

Opravdu ti ten procesor běží na 147 MHz?
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#3 Příspěvek od endthe »

ne na 14,7 MHz krystalu takze tam mam o jednu 0 vic
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#4 Příspěvek od endthe »

zprovozneno musel sem opravit napajeni serv
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“