Font size
WorksheetsPort Timer2 and Interrupt
Total questions: 20
Worksheet time: 32mins
เมื่อเปิดเครื่องค่าใน DDRB register จะเป็น 0 หลังจาก code "DDRB |= (1<<5)" ถูก execute แล้วค่า ใน DDRB จะเป็นเท่าไหร่ ให้ตอบเป็นเลขฐาน 2 ขนาด 8 บิต
(a)
ข้อใดอธิบายถูกต้องเกี่ยวกับความหมายของ Code "DDRB |= (1<<5); PORTB &= ~(1<<5);"
ให้ขา IO5 ของ Arduino เป็น Output ที่มีค่าเริ่มต้นเป็น Logic High
ให้ขา IO5 ของ Arduino เป็น Input แบบใช้ R-pull up ภายใน
ให้ขา IO13 ของ Arduino เป็น Output ที่มีค่าเริ่มต้นเป็น Logic Low
ให้ขา IO13 ของ Arduino เป็น Input แต่ไม่ต้องใช้ R-pull up ภายใน
ไม่มีข้อใดกล่าวถูกต้อง
เมื่อเปิดเครื่องค่าใน PORTB register เป็น 0 หลังจาก code "PORTB &= ~(1<<5)" ถูก execute แล้วค่าใน PORTB จะมีค่าเป็นเท่าไหร่ ตอบเป็นเลขฐานสอง 8 บิต
(a)
ใน loop() หลังจาก code "PORTB ^= (1<<5)" ถูก execute ครั้งแรก แล้วค่าใน PORTB จะมีค่าเป็นเท่าไหร่ ตอบเป็นเลขฐานสอง 8 บิต
(a)
ใน loop() หลังจาก code "PORTB ^= (1<<5)" ถูก execute ครั้งที่สอง แล้วค่าใน PORTB จะมีค่าเป็นเท่าไหร่ ตอบเป็นเลขฐานสอง 8 บิต
(a)
ใน loop() หลังจาก code "PORTB ^= (1<<5)" ถูก execute ครั้งที่สาม แล้วค่าใน PORTB จะมีค่าเป็นเท่าไหร่ ตอบเป็นเลขฐานสอง 8 บิต
(a)
จงวิเคราะห์ว่าค่า TCCR2A และ TCCR2B จาก code ที่ให้มานั้นเป็นการสั่งงานให้สัญญาณนาฬิกาของ Timer2 มีคาบเท่าใดให้ตอบคาบ (T) หน่วยเป็นวินาทีพร้อมเหตุผลที่มี keyword: CS22, CS21 และ CS20 ทั้งนี้ให้เปิดดูเอกสารของ Unit: Timer
จงวิเคราะห์ว่าค่า TCCR2A และ TCCR2B จาก code ที่ให้มานั้นเป็นการสั่งงานให้ Timer2 ทำงานโหมดใด ให้ตอบชื่อโหมดพร้อมเหตุผลที่มี keyword: WGM22, WGM21 และ WGM20 ทั้งนี้ให้เปิดดูเอกสารของ Unit: Timer
จาก Code, TCNT2 จะมีค่าเริ่มต้นเป็น 256-156 = 100 จงคำนวณว่า timer 2 จะหน่วงเวลานานเท่าไหร่จนกว่าจะเกิด Overflow (TOV2 flag ของ TIFR2 register = 1)
จงอธิบายลำดับการทำงานของโปรแกรม Arduino โดยมี Keyword: Define Variable, Setup() และ Loop().
Flow Chart ด้านซ้ายมือส่วนสีเหลืองเข้มเป็น Flow Chart ของ While Loop ที่ตอบสนองกับ While Loop ใน Code. จงอธิบายการลำดับการทำงานของ While Loop ตามความเข้าใจโดยมี Keyword: Test Expression, True, while Loop Body และ False
Flow Chart ด้านซ้ายมือส่วนสีแดงเป็น Flow Chart ของ If-Else ที่ตอบสนองกับ If-Else ใน Code. จงอธิบายการลำดับการทำงานของ If-Else ตามความเข้าใจโดยมี Keyword: If-Else condition, True, If code block, False, และ Else code block
จงวิเคราะห์ว่าที่บรรทัด while ((TIFR2 & (1<<TOV2)) ==0) {}; นั้นโปรแกรมจะหลุดออกจาก while loop เมื่อ TIFR2 มีค่าเป็นเท่าไหร่ จงตอบเป็นเลขฐานสองขนาด 8 บิต
(a)
จากโปรแกรมจงวิเคราะห์ว่าเมื่อเข้า loop() function ครั้งแรกค่าใน myLoop มีค่าเป็นเท่าไหร่
0
1
100
101
จากโปรแกรมจงวิเคราะห์ว่าลำดับการทำงานใน loop() function ครั้งแรก เมื่อโปรแกรม execute คำสั่งบรรทัดที่ 21 แล้ว โปรแกรมจะ execute คำสั่งบรรทัดที่เท่าไหร่เป็นบรรทัดต่อไป
22
23
24
18
จากโปรแกรมจงวิเคราะห์ว่าลำดับการทำงานใน loop() function ครั้งที่หนึ่งร้อย เมื่อโปรแกรม execute คำสั่งบรรทัดที่ 21 แล้ว โปรแกรมจะ execute คำสั่งบรรทัดที่เท่าไหร่เป็นบรรทัดต่อไป
22
23
24
18
จากโปรแกรมจงวิเคราะห์ว่าโปรแกรมจะ execute คำสั่งบรรทัดที่ 22 เมื่อเวลาผ่านไปแล้วกี่วินาที
10 ms
100 ms
156 ms
1000 ms
เมื่อปุ่มกดต่อที่ขา 3 และ LED ต่อที่ขา 8 ของ Arduino Uno ดังรูป จากโปรแกรม เมื่อ execute คำสั่ง PORTB = myCount; คร้้งแรก และไม่มีการกดปุ่ม LED เป็นอย่างไร
LED จะดับเพราะว่า LED ต่อที่ขา 0 ไม่ใช่ขา 8
LED จะดับเพราะว่า LED ต่อที่ขา 3 ไม่ใช่ขา 8
LED จะดับ
LED จะติด
เมื่อปุ่มกดต่อที่ขา 3 และ LED ต่อที่ขา 8 ของ Arduino Uno ดังรูป จากโปรแกรม เมื่อ execute คำสั่ง PORTB = myCount; คร้้งแรก และมีการกดปุ่ม LED 1 ครั้งเป็นอย่างไร
LED จะดับเพราะว่า LED ต่อที่ขา 0 ไม่ใช่ขา 8
LED จะดับปุ่มกดต่อที่ขา 3 ไม่ใช่ขา 8
LED จะดับ
LED จะติด
ข้อใดต่อไปนี้ถูกต้อง
ไม่ว่าจะกดปุ่มอย่างไร LED ก็ไม่มีวันติดเพราะค่า myCount เป็นศูนย์เสมอ
ไม่ว่าจะกดปุ่มอย่างไร LED ก็ไม่มีวันติดเพราะว่า ขาที่ต่อปุ่มกดกับ Code ที่เขียนไม่สอดคล้องกัน
แม้ว่าจะต่อปุ่มกดถูกต้องและสอดคล้องกับโปรแกรมที่เขียนแล้วแต่การกดปุ่มไม่มีผลต่อ LED เพราะว่าค่าตัวแปร myCount จะเป็นศูนย์เสมอ
LED จะติดค้างเพราะว่าการกดปุ่มจะทำให้ LED ติด
LED จะติดและดับสลับกันไปตามการกดเพราะว่าตัวแปร myCount จะเพิ่มค่าขึ้นทุกครั้งที่กด
