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)
Lesezeichen