Pages: [1]   Go Down
Author Topic: Easy Question - How to set an attribute bit  (Read 308 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 27
Wit is a pale imposter of wisdom.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have a sketch that polls the user for:
1. A time duration between 1 and 15 seconds.
2. The amount of that duration that digital pin 9 should be set high.
3. How many (up to 4) additional digital pins should be activated at that frequency.  These are pins 10-13.

What I want to do is to set each additional pin to either be synchronized with pin 9 or offset by the duration that pin 9 is HIGH.

I am trying to understand how I can set a "sync" bit for the additional channels.

Here is the function that I am hoping to have handle the selection of additional channels and whether or not to synchronize each to the master channel 9.  I am learning as I go so it may be convoluted and if you have to time to steer me in the right direction I am very willing to take criticism.  For what it's worth, here it is:




Code:
//
//
//Set Number of Channels
//
//
int setChannels(){
  int result;                                      // Variable to store return value
  do {
    potval = analogRead(potpin);                   // Read pot value (0 - 1023)
    mySerial.print("?x00?y0");                     // Cursor to column 0, line 0
    mySerial.print("Set Number of");
    mySerial.print("?x00?y1?l");                   // Cursor to column 0, line 1, clear line
    mySerial.print("Channels: ");
    potval = map(potval, 0, 1023, 5, 1);         // Scale pot value to 1 to 5 channels
    mySerial.print(potval);                        // Print pot value  

    buttonval = digitalRead(buttonpin);            // Check for button press
    /*
   If button is pressed & it wasn't being pressed a moment ago & its been long enough since the
     last time that it isn't a bounce... ...remember press time for next debounce?
     */
    if (buttonval == HIGH && prevbuttonval == LOW && millis() - presstime > debounce) {
      presstime = millis();                        // Store time button was pressed
      result = potval;                              // Store potval to cycle
      delay(1000);
      mySerial.print("?x00?y0?l");                 // Cursor to column 0, line 0, clear line        
      mySerial.print("Set Number of");  
      delay(2000);  
      mySerial.print("?f");                        // Clear the LCD      
      //     prevbuttonval = buttonval;

      // Set Channel Sync
      if(result > 1){
        for(int i = 2; i <= result; i++){               // Loop to set channel sync

          do {
            potval = analogRead(potpin);                   // Read pot value (0 - 1023)
            mySerial.print("?x00?y0Set Channel ");         // Cursor to column 0,line 0
            mySerial.print(i);                             // Print channel in question
            mySerial.print("?x00?y1?lSync.: ");             // Cursor to column 0, line 1, clear line

            if(potval <= 511) {
              mySerial.print("Yes");
            }
            else {
              mySerial.print("No");
            }
            buttonval = digitalRead(buttonpin);            // Check for button press
            /*
   If button is pressed & it wasn't being pressed a moment ago & its been long enough since the
             last time that it isn't a bounce... ...remember press time for next debounce?
             */
            if (buttonval == HIGH && prevbuttonval == LOW && millis() - presstime > debounce) {
              presstime = millis();                        // Store time button was pressed

              /*
      
               How to set sync bit?
              
               */
            }





            return result;
          }
          while (i <= result);
        }
      }
    }
  }
  while (1 == 1);
}


Thanks so much for any help.

Sam
Logged

I have never let my schooling interfere with my education.
~ Mark Twain

http://www.lewrockwell.com/

0
Offline Offline
Newbie
*
Karma: 0
Posts: 27
Wit is a pale imposter of wisdom.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nevermind, I figured it out.
Logged

I have never let my schooling interfere with my education.
~ Mark Twain

http://www.lewrockwell.com/

Pages: [1]   Go Up
Jump to: