Sketch

// ===============================================
// SIMUINO_BEGIN
// ===============================================
// BOARD_TYPE:  UNO
// SKETCH_NAME: HelloWorld_UNO.ino
// SIM_LENGTH:  600
// WIN_LAYOUT:    2
// SO_DELAY:     40
//================================================
//  Scenario
//================================================
//
// SCENDIGPIN 10    1    0
// SCENDIGPIN 10   50    1
// SCENDIGPIN 10  100    0
// SCENDIGPIN 10  200    1
// SCENDIGPIN  9    1    0
// SCENDIGPIN  9   40    1
// SCENDIGPIN  9  130    0
// SCENDIGPIN  2    1    0
// SCENDIGPIN  2  100    1
// SCENDIGPIN  3    1    0
// SCENDIGPIN  3  140    1
// SCENDIGPIN  2  240    0
// SCENDIGPIN  3  260    0

//
// SCENANAPIN  4    1    5
// SCENANAPIN  5    1    8 
// SCENANAPIN  4   80   12
// SCENANAPIN  5  120   18 
//
//================================================
// Simuino log text customization
//================================================


// PINMODE_OUT: 13  "This is interrupt LED"
// PINMODE_OUT: 12  "PIN: Led Blink"

// DIGITALWRITE_LOW:  13  "Boom"
// DIGITALWRITE_HIGH: 13  "Crash"
// DIGITALWRITE_LOW:  12  "Led is off"
// DIGITALWRITE_HIGH: 12  "Led is on"

// DIGITALREAD:  9  "Read from nine"
// DIGITALREAD: 10  "Read from ten"


// ANALOGREAD: 4  "read analog four"
// ANALOGREAD: 5  "read analog five"


//-------- DIGITAL PIN settings ------------------

// Leds
int SORRY    = 13;
 
//-------- ANALOGUE PIN settings
//int SENSOR1  = 4;
//int SENSOR2  = 5;

//================================================
//  Function Declarations
//================================================

void blinkLed(int pin,int n);
void preTestCase();
void postTestCase();
//================================================
void sorryToBotherYou_1()
//================================================
{
      digitalWrite(SORRY, HIGH); 
      delay(901);
      digitalWrite(SORRY, LOW); 
}
//================================================
void sorryToBotherYou_2()
//================================================
{
      digitalWrite(SORRY, HIGH);
      delay(902);
      digitalWrite(SORRY, LOW);
}

//================================================
void setup()
//================================================
{
 // Do nothing
}
 
int nloop = 0;
//================================================ 
void loop()
//================================================
{
  int value,i;
  nloop++;

  preTestCase();

  Serial.print("----- TestCase: ");Serial.print(nloop);

//--------------------------------
  if (nloop == 1)
  {
    pinMode(SORRY,OUTPUT);
    Serial.println(" Interrupts according to scenario  ------");
    attachInterrupt(0,sorryToBotherYou_1, CHANGE);
    attachInterrupt(1,sorryToBotherYou_2, RISING);
    blinkLed(12,50);
    detachInterrupt(0);
    detachInterrupt(1);
  }

//--------------------------------
  if (nloop == 2)
  {
    Serial.println(" Serial output ------");

    Serial.println("This is a line with cr");
    Serial.print("Test print:");
    Serial.print("Hello ");
    Serial.print("Simuino ");
    Serial.print(100);
    Serial.println("end of line");
    Serial.print("Now the same without ln\n");

    Serial.print("This is a line with cr\n");
    Serial.print("Test print:");
    Serial.print("Hello ");
    Serial.print("Simuino ");
    Serial.print(100);
    Serial.print("end of line\n");
  }

//--------------------------------
  if (nloop == 3)
  {
    Serial.println(" Digital Write Blink Leds 4 - 13  ------");
    for (i=4;i<=13;i++)
    {
      pinMode(i,OUTPUT);
    }
    for (i=4;i<13;i++)
    {
      blinkLed(i,2);
    }

  }

//--------------------------------
  if (nloop == 4)
  {
    Serial.println(" Analog Read  ------");

    for(i=0;i<=5;i++)
    {
       value = analogRead(i);
       Serial.print("Analog Value Pin "); Serial.print(i);Serial.print(": ");
       Serial.println(value);
    }
 
  }

//--------------------------------
  if (nloop == 5)
  {
    Serial.println(" Digital Read pin 3-13  ------");
    for(i=3;i<=13;i++)
    {
       value = digitalRead(i);
       Serial.print("Digital Value Pin "); Serial.print(i);Serial.print(": ");
       Serial.println(value);
    }

  }
  

//--------------------------------
  if (nloop == 6)
  {
    Serial.println(" Port Manipulation DDR and PORT  ------");
    

    // digital pins 7,6,5,4,3,2,1,0
    DDRD = B11111110;  
    // digital pins -,-,13,12,11,10,9,8
    DDRB = B00111111;  
    delay(500);

    // All odd pins to LOW and even to HIGH
    PORTD = B01010100; 
    PORTB = B00010101;
    delay(500);
    // All odd pins to HIGH and even to LOW
    PORTD = B10101000; 
    PORTB = B00101010;
    delay(500);

   // digital pins 7,6,5,4,3,2,1,0
    DDRD = B00000000;  
    // digital pins -,-,13,12,11,10,9,8
    DDRB = B00000000;  
    delay(500);

    // Not visible !
    // All odd pins to LOW and even to HIGH
    PORTD = B01010100; 
    PORTB = B00010101;
    delay(500);
    // All odd pins to HIGH and even to LOW
    PORTD = B10101000; 
    PORTB = B00101010;
    delay(500);


    // PIND and PINB shall reflect  HIGH/LOW if pinMode = INPUT

    //PORTD &= B00000011;   // turns off 2..7, but leaves pins 0 and 1 alone

  }

//--------------------------------
  if (nloop == 7)
  {
    Serial.println(" PWM  ------");

    i = 3;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

    i = 5;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

    i = 6;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

    i = 9;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

    i = 10;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

    i = 11;value=100+i;
    analogWrite(i,value);
    Serial.print("Analog Write Value Pin "); Serial.print(i);Serial.print(": ");
    Serial.println(value);

  }

//--------------------------------
  if (nloop == 8)
  {
    Serial.println(" Read PINB PIND register according to scenario ------");

    for (i=3;i<8;i++)
    {
      value = bitRead(PIND,i);
      if(value == HIGH)
      {
         Serial.print("Pin is HIGH:");
         Serial.println(i);
      }
      else
      {
         Serial.print("Pin is LOW:");
         Serial.println(i);
      }
    }

    for (i=8;i<14;i++)
    {
      value = bitRead(PINB,i-8);
      if(value == HIGH)
      {
         Serial.print("Pin is HIGH:");
         Serial.println(i);
      }
      else
      {
         Serial.print("Pin is LOW:");
         Serial.println(i);
      }
    }

  }

//--------------------------------
  postTestCase();
  delay(10);
 
}

//================================================
void preTestCase()
//================================================
{
  int i;
  Serial.begin(9600);
  for(i=0;i<=13;i++)pinMode(i,INPUT);
}
//================================================
void postTestCase()
//================================================
{
  Serial.println("----- End of Test -----");
  Serial.end();
}
//================================================
void blinkLed(int pin,int n)
//================================================
{
  int i;

  pinMode(pin,OUTPUT);
  for(i=1;i<=n;i++)
    {
      digitalWrite(pin, HIGH); 
      delay(500);
      digitalWrite(pin, LOW); 
    }
  pinMode(pin,INPUT);
}
//================================================
// End of Sketch
//================================================

Comments