본문 바로가기

임베디드/Atmega12836

atmega128A datasheet 데이터시트 2021. 1. 4.
04_HBridgeCircuit.c DC 모터 /* * 04_HBridgeCircuit.c * * Created: 2020-12-29 오전 10:54:04 * Author : User */ #define F_CPU 16000000UL #include #include #define PRESSED1 #define RELEASED0 #define DEBOUNCE_MS300 #define ACPB6 #defineBDPB7 #define MOTOR_PORTPORTB #define MOTOR_DDRDDRB #define CLEAR(MOTOR_PORT & 0x3F) #define MOTOR_STOP(1 2020. 12. 29.
ATmega128 timer / counter 타이머: 내부 클럭을 셈 (16Mhz) -> 일정시간 간격의 펄스를 만들어 내거나 일정시간 경과후에 인터럽트 발생시킴 (인터럽트 발생시켜 특정장치 제어). 이벤트에 대해 시간을 유추할 수 있음 카운터: MCU 외부에서 입력되는 클럭을 세는 장치. 이벤트에 대해 시간을 유추할 수 없음 타이머와 카운터는 같은 하드웨어를 사용하는 장치임. 그래서 항상 같이 따라다님.. 8bits : 0~255 . 256이 되면 overflow TCNT : Timer Counter 수를세는 레지스터 TCCR : Timer Counter Control Registor 타이머 카운터 제어 레지스터 OCR : Output Compare Registor (E)TIMSK : (Extended) Timer Interrupt Mask re.. 2020. 12. 27.
모터 L 298 2020. 12. 23.
atmega128- 03_external_pullup.c , internal_pullup 내부풀업 외부풀업 외부풀업 /* * 03_external_pullup.c * * Created: 2020-12-21 오후 6:55:00 * Author : User */ #define F_CPU 16000000UL #include #include #define BUTTON1 PORTE0 #define BUTTON2 PORTE3 #define LED PORTB0 int main(void) { DDRE = 0x00; DDRB = 0xff; //DDRB = 1 2020. 12. 22.
atmega128- 03_external_pulldown 외부 풀다운 /* * 03_external_pulldown.c * * Created: 2020-12-17 오후 6:08:40 * Author : User */ #define F_CPU 16000000UL #include #include #define BUTTON1 PORTE0 #define BUTTON2 PORTE2 int main(void) { DDRE = 0x00; DDRB = 0xff; while (1) { if (PINE & (1 2020. 12. 17.
가져온 코드 #include //Servo 라이브러리를 추가 Servo servo; //Servo 클래스로 servo객체 생성 int value = 0; // 각도를 조절할 변수 value void setup() { servo.attach(7); //맴버함수인 attach : 핀 설정 Serial.begin(9600); //시리얼 모니터 사용 고고 } void loop() { if(Serial.available()) //시리얼 모니터에 데이터가 입력되면 { char in_data; // 입력된 데이터를 담을 변수 in_data in_data = Serial.read(); //시리얼모니터로 입력된 데이터 in_data로 저장 if(in_data == '1') //입력된 데이터가 1이라면 { value += 30; //.. 2020. 12. 15.
도트매트릭스 8x8 숫자 0~9 띄우기 / 흐르게 하기 https://blog.naver.com/dododokim/221368935252 도트 매트릭스로 숫자찍기 먼저 0의 모양을 배열에 나타내보면 이렇게 된다. 이 모양을 도트 매트릭스에 나타내야 하는데 소스에서는 ... blog.naver.com #define F_CPU 16000000UL #include #include unsigned char arr[10][8]={ {0xff, 0xff, 0x81, 0x7e, 0x7e, 0x81, 0xff, 0xff}, {0xff, 0xff, 0x7b, 0x7d, 0x00, 0x7f, 0xff, 0xff}, {0xff, 0xff, 0x1d, 0x6e, 0x76, 0x79, 0xff, 0xff}, {0xff, 0xff, 0xbd, 0x76, 0x76, 0x89, 0xff.. 2020. 12. 14.
반도체 다이오드 트랜지스터 반도체와 다이오드 드리프트drift 현상 : 자유전자는 전기장에 의해 전위가 낮은 쪽에서 높은 쪽으로 끌려감 2020. 12. 14.
HBE - MCU - Multi 2 base 로 배우는 마이크로 컨트롤러(AVR) HBE - MCU - Multi 2 base 로 배우는 마이크로 컨트롤러(AVR) 마이크로프로세서 - 순수 연산기능만 됨 마이크로 컨트롤러 = 마이크로 프로세서 안에 여러 기능을 하는 칩이 들어가 있다 AVR 마이크로 컨트롤러 *하버드구조 : 프로그램과 데이터에 대해 별도의 메모리와 버스를 사용한 구조 *RISC(Reduced Instruction Set Computer): 컴퓨터 실행 속도를 높이기 위해 명령 세트를 축소 설계한 컴퓨터 (명령 세트중 일부를 하드웨어로 만들었음) *플래시 메모리 기술과 접목시켜 소자 내에 프로그램 코드용 플래시 메모리를 내장 (롬이 아니라서 매번 시디 굽듯이 안구워도 됨 -> 개발 시 시간단축) *ISP (In-System Programming) 방식 ATmega128A.. 2020. 12. 13.
도트매트릭스 8x8 차례대로 켜기 / ㄹ 모양으로 흐르게 하기 https://kogun.tistory.com/12 AVR(ATmaga128)로 LED 매트릭스 장난하기 안녕하세요 고군입니다. 이번시간에는 디스플레이 장치 중 문자 또는 그림까지도 디스플레이 할 수 있는 장치인 LDM(LED Dot Matrix)에 대해 알아보고 프로그램을 통해 표시해 보겠습니다. 1. LED 매트 kogun.tistory.com 더보기 2. 도트 매트릭스에 대해서 행과 열 개념을 이해하셔야 도트 매트릭스를 켤 수 있습니다. 이부분에 대해서 레포트 작성해주세요. 3. 도트매트릭스의 불빛 하나를 켜서 ㄹ 모양으로 불빛이 움직이게 프로그램을 작성해주세요. 4. 도트매트릭스에 0~9까지 숫자를 찍어서 나타나게 해주세요. #define F_CPU 16000000UL #include #inclu.. 2020. 12. 9.
프로테우스 7.0 설정 (아트멜 스튜디오에서 코드 올릴 때) 2020. 12. 9.
74LS47IC http://blog.naver.com/PostView.nhn?blogId=specialist0&logNo=221254434269&parentCategoryNo=&categoryNo=41&viewDate=&isShowPopularPosts=true&from=search 74LS47(7447) BCD to 7-segment 디코더(Decoder)의 동작 실험 논리회로를 다루다 보면 7-segment LED(FND)를 사용할 때가 있는데요. 이때 74LS47(7447)같이 BC... blog.naver.com 이진수를 입력하면 십진수로 나온다.. A0~A3 아트메가와 연결 a~g segment 와 연결. 7핀이라 .까지 있는 segment와는 연결안된다 입력 출력 0000 0 0001 1 0010 2 001.. 2020. 12. 8.
LED8개 차례대로 켜기 시프트 /* * LED8on.c * * Created: 2020-12-07 오후 6:55:53 * Author : User */ #include #include int main(void) { DDRB = 0xFF; while (1) { PORTB = 00000001; _delay_ms(500); for (int i=0; i 2020. 12. 7.
FND (7 segment) /* * FNDexample.c * * Created: 2020-12-07 오전 9:31:46 * Author : User */ #include unsigned char digit[] = {0x77, 0x41, 0x3B, 0x5B, 0x4D, 0x5E, 0x7C, 0x43, 0x7F, 0x4F}; void display_7segled(unsigned char led[], unsigned int number){ PORTB = led[number]; } int main(void) { DDRB = 0xFF; display_7segled(digit, 4); return 0; } https://kocoafab.cc/tutorial/view/351 7세그먼트-숫자 표시하기 개요 1) 7세그먼트란 무엇인가? 7세그먼.. 2020. 12. 7.
201203 프로테우스회로 / 코드리뷰 위 회로 프로테우스로 작성 #include #define S0 PB5 //S0 변수를 PB5로 정의 #define S1 PB6 //S1 변수를 PB6로 정의 #define S2 PB7 //S2 변수를 PB7로 정의 #define D0 PB0 //D0 변수를 PB0 로 정의 #define D1 PB1 //D1 변수를 PB1 로 정의 #define D2 PB2 //D2 변수를 PB2 로 정의 #define D3 PB3 //D3 변수를 PB3 로 정의 #define D4 PB4 //D4 변수를 PB4 로 정의 int main() { DDRB = 1 2020. 12. 3.