DEBUGกดปุ่มAVRSTUDIO ตอน2DEBUGจำลองการกดสวิทช์หรือกดปุ่ม
21/6/2558 SONGCHAI PRAPATRUNGSEE
DEBUGกดปุ่มAVRSTUDIO ตอน2DEBUGจำลองการกดสวิทช์หรือกดปุ่ม
ในที่นี้X หมายถึง A,B,C,D,E
AVR =ไมโครคอนโทรลเลอร์ตระกูลหนึ่ง
PINX =PIN REGISTER
คือขาของไมโครคอนโทรเลอร์ตระกูลAVR
DDRX =DATA DIRECTION REGISTER
คือระบบนำทาง ให้ขาหรือPINXเป็นอินพุทหรือเอ้าท์พุท
1 =INPUT, 0 =OUTPUT
PORTX =SET VALUE REGISTER
คือการเซ็ทค่าให้เป็น1 หรือเป็น0
ถ้าเป็น1 จะมีไฟออกมาจากขาหรือPINX
ถ้าเป็น0 จะมีกราวด์หรือไม่มีไฟออกมาจากขาหรือPINX
PINX
หมายถึงขาของAVRนั่นเอง
มีไว้เพื่อทำการแอนด์
เพื่อให้รู้ถึงการเปลี่ยนแปลงของขา
และเมื่อมีการเปลี่ยนแปลงของขาหรือPINX
แล้วจะให้AVRทำอะไรก็เขียนสั่งAVRได้เลยครับ
ถ้าPORXเป็น1 ก็จะมีไฟออกมาจากขาหรือPINX
แต่จะเป็นINPUT(ไฟอ่อน)
หรือเป็นOUTPUT(ไฟแรง)
ขึ้นอยู่กับDDRX ระบบนำทาง
ถ้าDDRXเป็น0 ก็จะเป็นINPUT(ไฟอ่อน)
ถ้าDDRXเป็น1
ก็จะเป็นOUTPUT(ไฟแรง)
ถ้าPORXเป็น0 ก็จะมีกราวด์หรือไม่มีไฟ
ออกมาจากขาหรือPINX
แต่จะเป็นINPUT(ไม่มีไฟ)
หรือเป็นOUTPUT(กราวด์)
ขึ้นอยู่กับDDRX ระบบนำทาง
ถ้าDDRXเป็น0 ก็จะเป็นINPUT(ไม่มีไฟ)
ถ้าDDRXเป็น1
ก็จะเป็นOUTPUT(กราวด์)
SOURCE CODE
/*
* AT.c
*
* Created:
20/6/2558 18:06:48
* Author: sc
*/
#include <avr/io.h>//REGISTER OF AVR
#define F_CPU 8000000//DEFINE CLOCK SPEED
#include <util/delay.h>//FOR DELAY
#define POWER_B (PINB&0X80)
int main(void)
{
DDRA=255;//DDRX
1=OUTPUT,O=INPUT
DDRB=0;//0=INPUT
ALL PORTB
PORTB=255;
while(1)//LOOP
FOREVER
{
if
(POWER_B==0)
{
PORTA=0XF0;
//_delay_ms(1000);//Millisec
PORTA=0X0F;
//_delay_ms(1000);
PORTA=0XF0;
//_delay_ms(1000);
PORTA=0X0F;
_delay_ms(1000);
}
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น