วันอังคารที่ 11 ธันวาคม พ.ศ. 2555

Shiftout


Shiftout  (Pin , Pclk, SigBitType , ตัวแปร)

Pin คือขาที่ต้องการส่ง DATA ออกไป ซึ่งปกติขานี้จะต่อกับ SDI ของ device (เพราะตัว MCU เป็น SDO) ถ้าเป็นชิพบางรุ่นจะใช้ว่า Din (เพราะตัว MCU เป็น Dout)

Pclk คือ ขาที่ทำหน้าที่เป็นสัญญาณนาฬิกา ซึ่งต่อที่ขา CLK ของ device

SigbitType มี 4 แบบคือ
แบบที่ 0 - MSB first when edge of clock goes low หมายถึงส่งบิตของตัวแปรที่มีนัยสำคัญสูงสุดออกไปก่อนเมื่อสัญญาณที่ขา Pclk เป็น low
แบบที่ 1 - LSB  first when edge of clock goes low หมายถึงส่งบิตของตัวแปรที่มีนัยสำคัญต่ำที่สุดออกไปก่อนเมื่อสัญญาณที่ขา Pclk เป็น low
แบบที่ 2 - MSB first when edge of clock goes high หมายถึงส่งบิตของตัวแปรที่มีนัยสำคัญสูงสุดออกไปก่อนเมื่อสัญญาณที่ขา Pclk เป็น high
แบบที่ 3 - LSB  first when edge of clock goes high หมายถึงส่งบิตของตัวแปรที่มีนัยสำคัญต่ำที่สุดออกไปก่อนเมื่อสัญญาณที่ขา Pclk เป็น high

ตัวแปร หมายถึง ตัวแปรชนิด byte, หรือ word

สมมติ เรา Dim Tmp as Byte

Tmp = 65

Shiftout  PA.0, PA.1, 0 , Tmp

MCU จะกำเนิดสัญญาณนาฬิกาที่ขา PA.1 จำนวน 8 ครั้ง นับขาขึ้นและลง เป็น 1 ตามความถี่ที่ CPU วิ่งหารด้วย 8

ต่อมา ขา PA.0 จะมีการลำดับบิตดังนี้

65 DEC =  0100 0001 BIN
               
บิตที่มีนัยสำคัญมากที่สุดคือบิตสุดท้ายที่อยู่ทางซ้ายมือ ส่วนบิตที่อยู่ทางขวามือคือบิตที่มีนัยสำคัญต่ำ

เมื่อสัญญาณขา PA.1 ขึ้นสู่จุดสูงสุดและกลับลงมา ขา PA.0 จะกลายเป็น Low จากนั้น ขา PA.1 จะขึ้นไปสู่จุดสูงสุดและกลับลงมาอีกครั้ง คราวนี้ PA.0 จะเป็น High และจะเป็นอย่างนี้สลับกันตามลำดับบิตของตัวแปร Tmp

PA.1 จะสลับขึ้นลงไปมา 8 รอบ โดยแต่ละรอบ PA.0 จะกลายเป็น 0100 0001 ตามลำดับบิต

ไม่มีความคิดเห็น:

แสดงความคิดเห็น