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, 01: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, 02: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, 01: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, 01: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ů“