boolean myflag1 = true ;//กำหนดให้ myflag1 มีชนิดข้อมูลเป็น boolean เเละมีค่า=true
void setup() {
// 1=ดับ เเละ 0=ติด เพราะว่าต่อledขาบวกกับไฟ 5v
DDRB = 0xFF;//กำหนดให้ PORTB 8 ช่องเป็น output
TCCR1A = 0;//เริ่มต้นใช้ timer1
TCCR1B = 0;//ให้ timer1 เป็นเเบบ normal mode (ดูจากตาราง 2-2)
TCCR1B |= (1 << CS12);//กำหนด prescaler เป็น 256 (ดูจากตาราง 2-1)
TCNT1 = 0x0;//Reset Counter
TIMSK1 = 0;//ปิดการใช้งาน interrupt ทั้งหมด
PORTB = 0xFF;//ให้หลอดไฟที่ต่อกับ PORTB ทั้งหมดดับ
}
void loop() {
if(TIFR1 & (1 << TOV1))//เช็คว่า timer1 เกิน overflow
{
TIFR1 = (1 << TOV1);//เครียค่า timer1 ที่ overflow
if(myflag1)//ถ้า myflag1 มีค่าเป็นจริงให้ทำ
{
PORTB &= ~(1 << PORTB7 );//ปิด LED ที่ PORTB7
}
else//ถ้าไม่ตรงเงื่อนไขด้านบนให้ทำ
{
PORTB = (1 << PORTB7);//เปิด LED ที่ PORTB7
}
myflag1 =! myflag1;//สลับค่าของตัวเเปล myflag1 (จาก true เป็น false,จาก false เป็น true)
}
}