반응형 분류 전체보기2980 20160314_정우민_인터럽트 펌웨어 실습(인터럽트) #define PINA (*((volatile unsigned char *)0x20)) #define DDRA (*((volatile unsigned char *)0x21)) //메모리 21번지에서 하는 일은 DDRA #define PORTA (*((volatile unsigned char *)0x22)) #define EICRA (*((volatile unsigned char *)0x69)) #define EICRB (*((volatile unsigned char *)0x6A)) #define EIMSK (*((volatile unsigned char *)0x3D)) #define SREG (*((volatile unsigned char *)0x5F)) #define INT7 7.. 2016. 3. 15. 20160311_오아람_업무일지_데이터시트,실습+펌웨어분석 - 데이터 시트 - watch dog - 자동으로 리셋을 건다. 칩 내부에 시계가 있는데 시간을 맞추면 watch dog가 리셋을 건다. 독립적으로 돌아가는 회로다.(ex- 자동화시스템에 에러가 나면 watch dog가 리셋을 건다) ball - 다리가 아닌것 (뒷면이 튀어나와있어서 그 부분으로 납땜가능) pad - 다리를 안으로 구부려놓은 것 (소켓에 납땜하지 않아도 된다) 코어와 FLASH,SRAM은 맞닿어 있다.(직접 연산을 한다) 하늘색 화살표는 버스를 나타낸다. 내부 오실레이터 - 고주파수가 필요없을 때 사용.(EX- 엘리베이터) 01) oscillator cirucits - 외부로부터 클럭을 받아서 Watchdog oscilator로 전달한다. 02) Watchdog oscilator - 클럭.. 2016. 3. 15. 2016-03-14.강정수.펌웨어분석(EICRA,EICRB) EICRA , EICRB 이 두개는 단순하게 말하면 어떤 방식으로 인터럽트를 일으킬 것이냐? 라는걸 묻는다 EICRA는 인터럽트0~3번까지를 어떤 방식으로 설정할 건지, EICRB는 인터럽트4~7번까지를 어떤 방식으로 설정할 건지를 상태에 따라 설정해 준다. EIMSK 로 어떤 인터럽트를 설정시킬지 선택EICRA나 EICRB로 해당 인터럽트의 발생방식을 설정해주고sei()로 전체 인터럽트 허가를 설정해 주면 된다. 인터럽터를 구별하는 표를 벡터넘버 테이블이라고 한다. 아래는 위에서 나온 표기들을 이용한 실험이다.#define DDRA (*((volatile unsigned char *)0x21)) #define PORTA (*((volatile unsigned char *)0x22)) #define PI.. 2016. 3. 15. main.h #ifndef __MAIN_H__ //여긴 그냥 써도 됨. #define __MAIN_H__ //나중에 이름이 중복될까봐.void Init(void); void Port_Init(void); void INT_Init(void);#define PINA (*((volatile unsigned char *)0x20)) #define DDRA (*((volatile unsigned char *)0x21)) #define PORTA (*((volatile unsigned char *)0x22))#define EICRA (*((volatile unsigned char *)0x69)) #define EICRB (*((volatile unsigned char *)0x6A)) #define EIMSK (*((volati.. 2016. 3. 15. main.c #include "main.h"volatile unsigned int uiState;int main(void) { volatile unsigned int uiCnt; //타이머. 변수선언 다음은 DDRA를 출력으로 바꿔줘야함 volatile unsigned int uiloop; uiCnt = 0; Init(); uiState = 1; while(1) { PORTA = ((uiCnt/10) 2016. 3. 15. 2016.03.11 이종찬 업무일지 DK128 수업 DK128-J19의 1~8번까지의 선과 ATmega2560 각각의 GND에 선을 연결한 장면. 숫자 0 0 이 뜬것을 볼수있다. DK128-J19의 1~8번선 모두를 ATmega2560의 J13의 PA1부터 PA8번까지 연결한다. 그리고 전원을 키게되면. 0 1 이라는 숫자가 떠있다. 이제 다른 숫자를 입력하는 프로그래밍을 하겠습니다.숫자판에 34를 띄우기 위해선 이런 소스를 넣어본다. 34/10 은 10자리 3을 나타나게하기 위함이고 34%10은 나머지를 출력하는 함수로 4가 출력된다.그림을 보자 이렇게 34가 출력이 된다. if ~ else 문if (조건식){printf(명령);} else{printf(명령);}if의 조건식이 참일경우 if의명령문을 if의 조건식이 거짓일 경우 els.. 2016. 3. 15. 20160314_송민규_업무일지_펌웨어분석 1. 코딩 결과 2.용어, 개념 정리노트 2016. 3. 15. 미 정부 오픈소스 직접개발 &배포 미국 정부가 지난주 오픈소스 소프트웨어 운동에적극 참여하겠다고 밝혔다. 다른 정부들이 오픈소스 기술들을 사용하는 데 그친 반면, 미국 정부는 직접 새로운 오픈소스 소프트웨어를 개발하고 소스코드를 공유하는 것을 강조했다는 점에서 의미가 깊다. https://www.bloter.net/archives/251945 역시 미국은 스케일이 다르네요 국내는 몇년전 겨우 api 같은거 몇개 쓸수 있게끔 해준게 전부인걸로 아는데.... 2016. 3. 15. 20160311-조재찬-업무일지-펌웨어분석 FND TEST VCC는 빨간선, GND는 검은색 선임을 잘 확인하고 기판에 연결 seven segment에 00 이 출력된다. 3 2 1 0 3 2 1 0 J 1 9 L L L L H L L H 09를 출력하기 위해선 PORTA와 J19를 위와 같이 연결한다. 프로그래밍을 통한 숫자 바꾸기 숫자 34 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #define DDRA(*((volatile unsigned long *)0x21)) #define PORTA(*((volatile unsigned long *)0x22)) #define PINA(*((volatile unsigned long *)0x20)) int main(void) //void 안적으면 컴파일시 war.. 2016. 3. 15. 이전 1 ··· 46 47 48 49 50 51 52 ··· 332 다음 728x90 반응형