AVR2560

    2013.09.24_ 명령어 실행 소스

    Source ▶ 구조체 안에 문자열 커맨드와 함수포인터를 넣음ex) 하이퍼터미널에서 LED ON 이라고 입력하면 LED 가 켜지고 LED OFF 라고 입력하면 LED가 꺼짐 ▶ 문자열 비교 함수를 직접 만듬구조체 배열 전역변수 안에있는 값과 직접 키보드로 적은 값을 비교하는 함수 문자열이 같을때 반환값으로 0 을 돌려주고 같지 않으면 0 이 아닌 값을 돌려줌값이 같으면 계속 +1 씩 늘어나고 , 값이 모두 같으면 뺄셈을 해주어 값을 0 이 돌려받게끔 하였다. ▶ 벡터25 ( 인터럽트 처리 벡터 번호 : USART 핸들러 )문자열을 ucBuff 에 저장해놓고, Enter 를 눌렀을 시에 if 문으로 \n 을 NULL로 변환후 CMD() 함수에 인자로 넣어줌 ▶ 추가로 ADC 를 입력하면 그때의 밝기값을 하..

    2013.06.07_EEPROM 접근_by유진

    보호되어 있는 글입니다.

    2013.06.10_USART로 모든 기능 활용_

    ▶ main.c #include "Lcd.h"#include "Ultra.h" #include "USART.h" #include "Timer.h" #include "EEPROM.h" #include "ADC.h" void __vector_25(void) { static unsigned char ucData; ucData = UDR0; while((0 == (UCSR0A)) & (RXC0)); USART_String("1. Ultra Sonic\r\n"); USART_String("2. Write the Data to EEPROM\n\r"); USART_String("3. Read the Data from EEPROM\n\r"); USART_String("4. Sensor_Light_Temp\n\r"); ..

    2013.06.10_초음파센서_활용

    ▶ Ultra.c#include "Ultra.h" static volatile unsigned int ui_Tic; // 58us 1cm. static volatile unsigned int ui_dist; // Echo Pulse 가 Low 되는순간의 값을 저장. 거리를 게산가능. static volatile unsigned int ui_state; // 현재 초음파 거리를 측정중인지 아닌지. // 측정중이면 1, 측정중이 아니면 0 unsigned char *ULTRA_RUN(void) { static unsigned char uc_dist[] = "---cm"; ui_Tic = 0; // 미리 0cm 로 초기화. ui_dist = 0; // 계속동작중인 ui_Tic 에다가 값을 넣어서. 실제거리를 ..

    2013.06.07_인터럽트에 대한 이론_

    인터럽트의 종류(Page 138) 인터럽트의 동작(Page 139): ISR(interrupt service routine, interrupt handler) 어느 기기나 장치에 기계적으로나 운영체제에 의해서 호출이 되는 것여기서 기계적으로 호출이 되는것을 일반적인 Interrupt 라고 하며,운영체제에서 호출이 되는 것을 'Call Back', Call Back 함수를 호출했다. 라고한다. ▶ EXT_INT.c#include "EXT_INT.h"#include "Lcd.h" void INT_Init(void)// Low 레벨에서 걸리도록. Negative-Edge{EICRB = (0

    2013.06.07_EEPROM에_직접_읽고/쓰기

    ▶ EEPROM에_직접_읽고/쓰기(1) EEPROM 에는 다이렉트로 직접 접근이 불가하다. 1-1 EEPROM에 쓰고싶은 주소는 EEAR(어드레스 레지스터)에 주소를 입력하고, 이 EEAR 레지는 EEARH(4bit)+EEARL(8bit) = 12bit 를 사용한다. 1-2 EEPROM에 쓰고싶은 데이터는 EEDR(데이터 레지스터)에 입력을 한다. EEPROM 의 범위는 0x0000 ~ 0x0FFF 이고, 각 칸당 1byte 소모한다. 1-3 EEPROM에 Write 가 가능하도록 허용할지 여부를 결정하는 레지스터는 EEMPE로 EEMPE = 1 일때 값이 EEPROM에 입력이된다. ▶ EEPROM.c#include "EEPROM.h" // 첫번째인자는 12byte의 주소를넘겨주어야하므로, int형(16..