Servo Ansteuerung: Unterschied zwischen den Versionen
Kiwi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: dnl ################################################################################ dnl # This program is free software; you can redistribute it and/or modify it ...) |
Kiwi (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
− | + | <br> Hier Mal ein kleines Alternatives Servo Test Programm, | |
− | + | <br>Geschrieben für einen ATMega644 @ 16 MHz | |
− | + | <br> | |
+ | <br>Servo ausgang liegt am PortC - PC7 | ||
+ | <br> | ||
+ | <br>Frequenz 25 Hz, Pulsweite 1520 mS (Mittel Stellung) | ||
+ | <br> | ||
+ | <br>... warum zum geier kann ich die variable pos nicht über ecmd so setzen das es auch funktioniert ? | ||
+ | <br>... bitte vorsicht.... wen über ecmd die variable einen belibigen wert erhält, geht die pulsweite auf 4mS ... | ||
+ | <br>... 4mS ... = Motor mehr als zum endanschlag... put put... :-) | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | <source lang="c"> | ||
dnl ################################################################################ | dnl ################################################################################ | ||
dnl # This program is free software; you can redistribute it and/or modify it # | dnl # This program is free software; you can redistribute it and/or modify it # | ||
Zeile 48: | Zeile 59: | ||
TCNT0 = pos ; | TCNT0 = pos ; | ||
} | } | ||
+ | </source> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> |
Version vom 4. August 2009, 10:53 Uhr
Hier Mal ein kleines Alternatives Servo Test Programm,
Geschrieben für einen ATMega644 @ 16 MHz
Servo ausgang liegt am PortC - PC7
Frequenz 25 Hz, Pulsweite 1520 mS (Mittel Stellung)
... warum zum geier kann ich die variable pos nicht über ecmd so setzen das es auch funktioniert ?
... bitte vorsicht.... wen über ecmd die variable einen belibigen wert erhält, geht die pulsweite auf 4mS ...
... 4mS ... = Motor mehr als zum endanschlag... put put... :-)
dnl ################################################################################
dnl # This program is free software; you can redistribute it and/or modify it #
dnl # under the terms of the GNU General Public License (either version 2 or #
dnl # version 3) as published by the Free Software Foundation. #
dnl # #
dnl # This program is distributed in the hope that it will be useful, #
dnl # but WITHOUT ANY WARRANTY; without even the implied warranty of #
dnl # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
dnl # GNU General Public License for more details. #
dnl # #
dnl # You should have received a copy of the GNU General Public License #
dnl # along with this program; if not, write to the Free Software #
dnl # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #
dnl # #
dnl # For more information on the GPL, please go to: #
dnl # http://www.gnu.org/copyleft/gpl.html #
dnl # #
dnl # #
dnl # Daten Analyse und Programm Erstellung: #
dnl # Copyright (c) 08/2009 - Michael Schultz <ethersex@keyb.de> #
dnl # #
dnl ################################################################################
dnl
CONTROL_START
ECMD_GLOBAL(pos, 175, uint8_t); dnl Mittel Position @ 16 MHz
THREAD(pwm_on)
PORTC = 255 ;
TCNT0 = pos ;
PT_YIELD(pt);
THREAD_END(pwm_on)
ON STARTUP DO
TCCR0B |= _BV(CS02); dnl TCCR0B(CS02)=1 clkI/O/256 (From prescaler)
TCCR0B &= ~_BV(CS01); dnl TCCR0B(CS01)=0 clkI/O/256 (From prescaler)
TCCR0B &= ~_BV(CS00); dnl TCCR0B(CS00)=0 clkI/O/256 (From prescaler)
TIMSK0 |= _BV(TOIE0); dnl TIMSK0(TOIE0) = 1 Interrupt on Timer Overflow aktivieren
DDRC = 255;
PINC = 0;
THREAD_START(pwm_on)
END
CONTROL_END
ISR(TIMER0_OVF_vect)
{
PORTC = 0 ;
TCNT0 = pos ;
}