Hallo

Bei meiner bee dauert delay(1) eine ms:
Code:
#include <nibobee/iodefs.h>
#include <nibobee/base.h>
#include <nibobee/led.h>
#include <nibobee/motpwm.h>
#include <nibobee/delay.h>

int main(void)
{
	int16_t speed_l=0;
	int16_t speed_r=0;

	led_init();
	motpwm_init();
	enable_interrupts();
	
	led_set(0,1);
	delay(3000);
	led_set(0,0);
	led_set(1,1);

	while(1==1) {

		speed_l = 400;
		speed_r = 400;
		motpwm_setLeft(speed_l);
		motpwm_setRight(speed_r);
		delay(1000);

		speed_l = 0;
		speed_r = 400;
		motpwm_setLeft(speed_l);
		motpwm_setRight(speed_r);
		delay(1000);

		speed_l = 700;
		speed_r = 700;
		motpwm_setLeft(speed_l);
		motpwm_setRight(speed_r);
		delay(1000);

	}
	return 0;
}
Die Motoransteuerung finde ich ziemlich zickig, ich weiß noch nicht, ob mir das so gefällt. Ich stehe mehr auf eigenverantwortliche Ansteuerung mit MotorDir()/MotorPWM(). Leider haben die Codescheiben nur 4 Löcher, 8 wären deutlich besser. Bei einer Drehzahlregelung dürften die unterschiedlichen Abstände zwischen High und Low Probleme bereiten.

Gruß

mic

[Edit]
Noch 'ne Anmerkung zu delay(): In meiner Datei delay.c ist das so definiert:

Code:
void delay(uint16_t ms){
    while(ms--)
      delay_ms(1);
}
Zum einen fehlt hier irgendwie der Unterstrich vor delay_ms() und zudem wär ein schlichtes delay_ms(ms) einfacher und vermutlich genauer weil ohne Overhead durch die Aufrufe von delay_ms(1)