element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum My first switch statement
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 14 replies
  • Subscribers 402 subscribers
  • Views 2978 views
  • Users 0 members are here
Related

My first switch statement

Former Member
Former Member over 13 years ago

Im trying to use a switch statement to jump to a different function.  All of the lessons I find just tell me how to turn on leds or outputs.  So I have no idea of what to do here.  So far I have this.

 

 

{

int range;     // I just used this cause it was in an example, I think I need it to name my switch statement. 

int flasha;  //  This is the subroutine I want to run.  I will have more late just trying to figure out the first one.

switch(range);

{

case 0:  //  I don't know why I have  to use "0"  it is just in all of the examples and nothing else works.

state==1, flasha;  // state is my input.  When a button is pressed it will count the number of presses and send it to the approiate subroutine.

break:

}

}

 

When I compile this program I get the error

 

case label '0' not within a switch staetment.

 

Can anyone explain what this means or what I'm doing wrong?

 

Thanks

  • Sign in to reply
  • Cancel

Top Replies

  • billabott
    billabott over 13 years ago +1
    Hey Dan & Nico. Looking at http://www.arduino.cc/en/Tutorial/SwitchCase Would not the range value be determined before entering the switch(range)&case structure? I guess you could set it up that for case…
  • ntewinkel
    ntewinkel over 13 years ago in reply to Former Member +1
    Hi Dan, You are not defining and calling your functions correctly. Remove these two lines, as they define them as integers, which is not the intention: int flasha; int flashb; In the switch statement,…
  • ntewinkel
    ntewinkel over 13 years ago in reply to Former Member +1
    Here's a good link too: http://diyroboticslab.wordpress.com/2009/06/04/ledblink-arduino-program/ It goes into the C programming language, and also has links to what error messages mean.
Parents
  • Former Member
    0 Former Member over 13 years ago

    Well guys I tried both of you solutions and goot the same result.  And that is the same thing I had before.  It almost acts as if it doesn't even see that line of code.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • ntewinkel
    0 ntewinkel over 13 years ago in reply to Former Member

    I only see you changing buttonst in this line:

        buttonst=digitalRead(8);

     

    With that it can only ever be HIGH or LOW, so it won't ever be 10 or more.

     

    If you're trying to increment buttonst with each keypress then you'd have to change your code to detect a button press (debounced so you don't interpret a single press as mutiple presses), and then increment buttonst by just 1.

     

    Also, this code:

    if (buttonst==HIGH)

        {//open state count

      

        if (buttonst==10)buttonst==0;                    RIGHT HERE

     

    you only enter the if... statement if buttonst is "HIGH", which is defined as a single value (probably just 1). Then right after that you check if it's 10. So it will never enter the "right here" statement because it will never be both of those separate values.

     

    Perhaps instead of buttonst you meant to use a separate counting variable like buttonCount ?

     

    Cheers,

    -Nico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • ntewinkel
    0 ntewinkel over 13 years ago in reply to Former Member

    I only see you changing buttonst in this line:

        buttonst=digitalRead(8);

     

    With that it can only ever be HIGH or LOW, so it won't ever be 10 or more.

     

    If you're trying to increment buttonst with each keypress then you'd have to change your code to detect a button press (debounced so you don't interpret a single press as mutiple presses), and then increment buttonst by just 1.

     

    Also, this code:

    if (buttonst==HIGH)

        {//open state count

      

        if (buttonst==10)buttonst==0;                    RIGHT HERE

     

    you only enter the if... statement if buttonst is "HIGH", which is defined as a single value (probably just 1). Then right after that you check if it's 10. So it will never enter the "right here" statement because it will never be both of those separate values.

     

    Perhaps instead of buttonst you meant to use a separate counting variable like buttonCount ?

     

    Cheers,

    -Nico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube