Pages: 1 [2]   Go Down
Author Topic: [Solved]Subroutine  (Read 2219 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset





0 - 4294967295  =  1

Als ik het scetchje van robtillaart run, zien ik als x: 4294967280.
mijn : #define MAX_MILLIS_VALUE 34359738 ..... is dus al fout.
maar als ik 0-x doe krijg ik 16.

Als ik dit run:
Quote
void setup()
{
  Serial.begin(115200);
  Serial.println("Start "); 
  uint32_t x = 0xFFFFFFF0;
  uint32_t miellies = 0xFFFFFFF0; 
  Serial.print("0 - ");
  Serial.print(x);
  Serial.print(" = ");
  Serial.println(0 - x);
  Serial.print("0 - 4294967295  =   ");
  Serial.println(0 - 4294967295);
Quote
Start
0 - 4294967280 = 16
0 - 4294967295  =  1

Ik denk dus gewoon te moeilijk.
Het is een soort van cirkeltje.

Maar je moet wel het goede getalletje pakken.

Maar scheinbaar kan het dus allemaal ook zonder rekening te houden met die overflow.
Ik zal het allemaal nog eens bekijken.
Het is niet makkelijk.

Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 217
Posts: 13742
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dat is unsigned rekenen.

Quote
Het is een soort van cirkeltje.
Inderdaad! n et zoals jijzelf doet met een 12 uurs klok.   

voorbeeld     duration = eindtijd - begintijd
1)   4 uur - 2 uur = 2 uur.
2)  4 uur - 10 uur = 6 uur

precies hetzelfde alleen loopt de millis klok van 0 tot 4294967295   ipv  0..11

PS ik heb je tuinsproeier gerefactored als voorbeeld hoe je met de millis werkt. (andere thread)
Als je er vragen over hebt, hoor ik het graag.
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Pages: 1 [2]   Go Up
Jump to: