delay werkt in functie maar millis() niet op Attiny
2 berichten
• Pagina 1 van 1
delay werkt in functie maar millis() niet op Attiny
Ik wil een flitser maken voor op mijn paramotor met meerder leds op basis van een digispark Attiny85. De flitser moet verschillende modes (enkel, multi , SOS code etc)
Ik wil bij het definiëren van de flitsduur en pauzes daartussen geen gebruik maken van delay maar van millis().
Met delay werkt "het"
Maar ik wil die delay vervangen door millis() en heb de flits functie vervangen door de onderstaande code die dus niet werkt. Wat doe ik fout?
Ik wil bij het definiëren van de flitsduur en pauzes daartussen geen gebruik maken van delay maar van millis().
Met delay werkt "het"
- Code: Alles selecteren
bool doe = true;
int dot = 100; // 10 ms is default lengte van een kort morse teken en een flits
void setup() {
pinMode(led, OUTPUT);
pinMode(flits1, OUTPUT);
pinMode(flits2, OUTPUT);
}
void loop() {
flits(1);
if ((millis()-tijd_1)>= (60000/frekwentie-dot)){
tijd_1= millis();
doe = true;
}
}//loop
void flits (int duur) //test
{
if (doe)
{
for (int i = 1; i<=2; i++)
{
digitalWrite(flits2, HIGH);
delay(dot*duur);
digitalWrite(flits2, LOW);
delay(dot);
}
}
doe = false;
}
Maar ik wil die delay vervangen door millis() en heb de flits functie vervangen door de onderstaande code die dus niet werkt. Wat doe ik fout?
- Code: Alles selecteren
void flits (int duur) //test
{
if (doe)
{
for (int i = 1; i<=1; i++)
{
if (aan)
{
digitalWrite(flits2, HIGH);
if ((millis() - tijd_1) > 200)
{
tijd_1 = millis();
aan = false;
}
}
else
{
digitalWrite(flits2, LOW);
if ((millis() - tijd_2) > 10)
{
tijd_2 = millis();
aan = true;
}
}
}
doe = false;
}
}
Advertisement
Re: delay werkt in functie maar millis() niet op Attiny
millis() is een teller die gewoon begint, dus als je de tijd begint moet je millis() wel opslaan en dus tijd_1,2 eerst initialiseren.
bij delay doet de functie dat zelf.
maar millis heeft het grote voordeel dat de processen gewoon doorgaan en delay stopt gewoon alles.
zie blink without delay (standaard zin van bekenden hier.
bij delay doet de functie dat zelf.
maar millis heeft het grote voordeel dat de processen gewoon doorgaan en delay stopt gewoon alles.
zie blink without delay (standaard zin van bekenden hier.
paul deelen
shooter@home.nl
shooter@home.nl
2 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 25 gasten