Callback functie nextion gebruiken in arduino
15 berichten
• Pagina 2 van 2 • 1, 2
Re: Callback functie nextion gebruiken in arduino
Whoo das andere koek
Ik heb eerst de twee knoppen vervangen voor en dualstate button, dat scheelt weer code.
Inderdaad de if in klok() eruit gehaald, idd idioot om die twee keer erin te zetten. En ik maar denken dat het zo moest
Alleen die delay eruit? Ik begrijp dat ik dan een;
variabele maak type
unsigned long vorigeMillis = 0; // resetten van de teller
en een
const long interval = 1000; // de 1 sec vertraging voor de teller
in de main loop()
unsigned long huidigeMillis = millis(); // de daadwerkelijke teller tot interval
if (huidigeMillis - vorigeMillis >= interval) {
vorigeMillis = huidigeMillis; // terug naar 0 en opnieuw beginnen
//en dan raak ik het kwijt
if ( )
{
moet hier de timerloop staan van sec,min,uren? ;
}
else
{
}
Ik heb eerst de twee knoppen vervangen voor en dualstate button, dat scheelt weer code.
Inderdaad de if in klok() eruit gehaald, idd idioot om die twee keer erin te zetten. En ik maar denken dat het zo moest
Alleen die delay eruit? Ik begrijp dat ik dan een;
variabele maak type
unsigned long vorigeMillis = 0; // resetten van de teller
en een
const long interval = 1000; // de 1 sec vertraging voor de teller
in de main loop()
unsigned long huidigeMillis = millis(); // de daadwerkelijke teller tot interval
if (huidigeMillis - vorigeMillis >= interval) {
vorigeMillis = huidigeMillis; // terug naar 0 en opnieuw beginnen
//en dan raak ik het kwijt
if ( )
{
moet hier de timerloop staan van sec,min,uren? ;
}
else
{
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Callback functie nextion gebruiken in arduino
In de loop:
cpp code
cpp code
Als true
Als timer loopt
Als 1 seconde verlopen
Klok()
Start timer
Einde Als
Anders
Klok()
Start timer
Einde Als
Einde Als
Re: Callback functie nextion gebruiken in arduino
Ik denk dat ik de puzzel heb opgelost
hier de volledige code voor het starten en stoppen/pauzeren en wederom starten van een timer.
hier de volledige code voor het starten en stoppen/pauzeren en wederom starten van een timer.
- Code: Alles selecteren
/*
*********************************************************************
Test sketch t.b.v. het starten en stoppen/pauzeren van een timer.
Gebruikte hardware:
- Arduino MEGA 2560 communiceerd op Serial2
- Nextion Basic 3,2 inch display
*********************************************************************
*/
#include <Nextion.h>
//*************declareer de globale constante*************************
boolean start = false;
//*************setup variabelen voor tijd telling ********************
uint32_t timer; // de timer
uint16_t Hour = 0;
uint16_t Minute = 0;
uint16_t Second = 0;
unsigned long vorigeMillis = 0; // resetten van de teller
const long interval = 1000; // de 1 sec vertraging voor de teller
//*************setup van nextion buttons *****************************
NexDSButton btstart = NexDSButton(0, 6, "btstart"); // start-stop timer
/*
tekst veld - time.txt voor odo tijd
*/
//*************defineer lees lijst nextion buttons *******************
NexTouch *nex_listen_list[] =
{
&btstart,
NULL
};
//*************defineer buttons als void pointers ********************
void btstartPushCallback (void *ptr)
{
uint32_t number5 = 0; // Create variable to store value we are going to get
btstart.getValue(&number5); // Read value of dual state button to know the state (0 or 1)
if(number5 == 1)
{ // If dual state button is equal to 1 (meaning is ON)...
start = true;
} else
{
start =false;
}
}
void setup() { // put your setup code here, to run once:
//Serial.begin(9600); // tbv seriele monitor
start = false;
nexInit(); // Start communicatie met nextion display
//******************Callback functie initieren***************************
btstart.attachPush(btstartPushCallback);
//******************Display tijd op display 000:00:00********************
char Time[11];
sprintf(Time, "%03d:%02d:%02d", Hour, Minute, Second);
Serial2.print(F("time.txt=\""));
Serial2.print(Time);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
}
void loop() // put your main code here, to run repeatedly:
{
nexLoop(nex_listen_list); // luister naar de buttons uit de luister lijst
unsigned long huidigeMillis = millis(); // de daadwerkelijke teller
if (huidigeMillis - vorigeMillis >= interval)
{
vorigeMillis = huidigeMillis; // terug naar 0 en opnieuw beginnen
if (start == true)
{
klok();
}
else
{
timer = 0 ;
start = false;
}
}
}
//******************Sub programma voor klok timer ***********************
void klok() // funcie aanroepen in main loop
{
timer = millis();
Second++; // seconde verlopen
if (Second == 60)
{
Minute++; // minuut verlopen?
Second = 0;
}
if (Minute == 60)
{
Hour++; // uur verlopen?
Minute = 0;
}
//*********************display de tijd op nextion display ***************
char Time[11];
sprintf(Time, "%03d:%02d:%02d", Hour, Minute, Second);
Serial2.print(F("time.txt=\""));
Serial2.print(Time);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
}
Re: Callback functie nextion gebruiken in arduino
Nog een vraagje, iets wat me niet duidelijk is.
Waarom hebben de Nextion items een functie met (void * ptr) en sub functie's alleen een void xxxx ()?
is de pointer functie omdat er een waarde uit de nextion komt ?
ik heb er best veel over gelezen maar het is me niet duidelijk geworden.
Wie kan licht in de duisternis schenken
Waarom hebben de Nextion items een functie met (void * ptr) en sub functie's alleen een void xxxx ()?
is de pointer functie omdat er een waarde uit de nextion komt ?
ik heb er best veel over gelezen maar het is me niet duidelijk geworden.
Wie kan licht in de duisternis schenken
Re: Callback functie nextion gebruiken in arduino
Die vraag heb ik net zitten beantwoorden http://arduinoforum.nl/viewtopic.php?f=9&t=3880
15 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten