Go Down

Topic: Stop - before Loop? (Read 855 times) previous topic - next topic

Hackdub

is it possible to stop the loop from runnning.

Im using an ethernet shield, and if it fails to obtain a local LAN Ip, I want to stop the loop from running.. can I do this?

so In void setup I have this line..
Code: [Select]
if (Ethernet.begin(mac) == 0) {

   { Serial.println("Failed to configure Ethernet using DHCP");
    lcd.setCursor(0,0);
lcd.print("LAN FAILURE !");
delay(1000);}
/// I want this to stop the loop from running from here . HOW?


do I create a else comment in loop and do nothing if (Ethernet.begin(mac) == 0)

any help would be appreciated...

David

billroy

Wouldn't it be more stylish to loop retrying the DHCP connection than simply to stop?

Anyway, you can just write a forever loop: "while (1) {;}" to stop execution.

-br

Hackdub


Wouldn't it be more stylish to loop retrying the DHCP connection than simply to stop?

Anyway, you can just write a forever loop: "while (1) {;}" to stop execution.

-br


Yes it would, but as it is even if my LAN is down, the loop begins..

GoForSmoke

You could check the LAN in setup().

Either way, while (1); ( save yer fingers, you don't need the { } ) will hang the code instantly. It's budget error-handling.

Nick Gammon on multitasking Arduinos:
1) http://gammon.com.au/blink
2) http://gammon.com.au/serial
3) http://gammon.com.au/interrupts

MarkT

You can always set a flag if initialization fails and test that in loop...  Perhaps you want something else to happen in that case
[ I won't respond to messages, use the forum please ]

Hackdub


You could check the LAN in setup().

Either way, while (1); ( save yer fingers, you don't need the { } ) will hang the code instantly. It's budget error-handling.





That was easy.. many thanks !-)

Nick Gammon


Code: [Select]
if (Ethernet.begin(mac) == 0) {

  { Serial.println("Failed to configure Ethernet using DHCP");
   lcd.setCursor(0,0);
lcd.print("LAN FAILURE !");
delay(1000);}
/// I want this to stop the loop from running from here . HOW?




Use exit();

And indent better.

Code: [Select]

 if (Ethernet.begin (mac) == 0)
    {
    Serial.println ("Failed to configure Ethernet using DHCP");
   lcd.setCursor (0,0);
   lcd.print ("LAN FAILURE !");
    delay (1000);
   exit (1);     // give up
    }


Don't be shy to hit the space bar. You don't get charged extra for spaces.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

GoForSmoke

Oh yeah.. exit(). I haven't used it with Arduino because for years it means exit to O/S to me!

Please for review, does exit stop any clocks and cut power use?

Nick Gammon on multitasking Arduinos:
1) http://gammon.com.au/blink
2) http://gammon.com.au/serial
3) http://gammon.com.au/interrupts

Nick Gammon


Oh yeah.. exit(). I haven't used it with Arduino because for years it means exit to O/S to me!

Please for review, does exit stop any clocks and cut power use?


I have to resist making humorous suggestions here ...

No, it turns interrupts off and goes into an infinite loop. That's all.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

Go Up