Simply check if 'seconds' is 60 or whatever, if it is, then execute your code. The interrupt gets called every 1 second and adds 1 to 'seconds'. I tested its accuracy and it works consistently down to the microsecond. Here is a slightly modified program I made to easily set up timed interrupts. This code sets the prescaler to 1024, as slow as you can get.Ī prescaler of 1024 allows for a maximum time of 8388.608mS or ~8.3 seconds clockSelectBits = _BV(CS12) | _BV(CS10) So, cycles is NOT less than RESOLUTION - 1, therefore it was more than maximum If(cycles < RESOLUTION) clockSelectBits = _BV(CS10) // no prescale, full xtalĮlse cycles = RESOLUTION - 1, clockSelectBits = _BV(CS12) | _BV(CS10) // request was out of bounds, set as maximum long cycles = (F_CPU / 2000000) * microseconds // the counter runs backwards after TOP, interrupt is at BOTTOM so divide microseconds by 2 Note that this 1 minute alert can be paused, resumed and restarted at any time using the designated buttons. If you do not wish to be acoustically alerted you may mute the 1 minute timer at any time. When the red circle reaches zero you will be alerted by a sound. Your code, which would have showed me the library you were usingĪnyway, here is what I found in the library I ASSUME you are using. Press the start button to initiate the countdown. I had to do alot of googling, which most people WILL NOT DO, simply because you failed to tell us basic things about your problem, such as: First of all, PLEASE read the How To Use This Forum thread before you post.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |