hallo,
het is me vandaag voor het eerst gelukt om iets in een avr te krijgen.
op deze site staat een programmatje om een servo te laten bewegen: http://expand.xs4all.nl/avr/servo.html
met deze code:
#include <avr/io.h>
#include <util/delay.h>
int main()
{
// timer1: fast pwm, clear OC1B on match
TCCR1A = (1 << COM1B1) | (1 << WGM11) | (1 << WGM10);
// timer1: fast pwm, ctc top=OCR1A, clk/1
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10);
OCR1A = 20000; // 20ms
OCR1B = 1500; // 1.5ms
DDRB |= (1 << PB4); // PB4/OC1B as output
uint16_t servoTiming; // servo timing in us
while(1)
{
// slowly turns servo from one side to the other
for(servoTiming = 1000; servoTiming < 2000; servoTiming++)
{
OCR1B = servoTiming;
_delay_ms(10);
}
// slowly turns the servo back
for(servoTiming = 2000; servoTiming > 1000; servoTiming--)
{
OCR1B = servoTiming;
_delay_ms(10);
}
}
return 0;
}
als ik deze code met avr studio compil. krijg ik netjes een bestandje die ik zo me avr in dan laden.
maar daarna als ik me servo aan sluit gebeurt er niks.
wat doe ik fout?
nog een ander vraagje hoe lees je een schakelaar in op je avr in C ?
stef
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Wat ik mis in je broncode, is de frequentie waarop de AVR draait. De delay-routines, die uiteraard afhankelijk zijn van deze frequentie, gaan default uit van 1MHz (hetgeen meestal de fabrieks-default is). Als je een andere frequentie gebruikt, declareer dat dan met bv. (voor een 14.7456MHz kristal)
#define F_CPU 14745600UL
pcnerd
Take a parachute, and jump!
pros: dat gebeurd in de makefile van het compilen, moet je dus instellen bij de opties in avr studio (project options ofzo).
verder, de atmega16 heeft geen 14,7.. etc kristal volgens mij, maar een normaal 4mhz interne oscillator.
en dan nog iets (aan TS), hoe sluit je de servo aan, op welke poort? en heb je er misschien aan gedacht dat een attiny2313 iets anders is dan een atmega16? kijk de datasheets er ff p na.
PB4 lijkt me het zelfde zit alleen op een andere pin.
ik ben gisteren begonnen met het programmeren van avrs dus veel verstand heb ik er niet van.
stef
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Stef, ik heb niet genoeg tijd om alle fouten zelf te maken... Ik wil leren van jou fouten... Wat was het nu?

