본문 바로가기

ATMEGA128

(3)
ATmega128 MPU6050 ATmega128 에서 MPU6050 의 가속도 자이로 값을 읽어오는 방법 100Hz로 샘플링을 하기 위해 타이머 오버플로우로 0.01초마다 인터럽트가 걸리게 설정함 TIMSK = 0x01; TCCR0 = 0x07; TCNT0 = 99; SREG = 0x80; 그리고 인터럽트 소스를 작성 interrupt [TIM0_OVF] void timer_int0(void) { getRawData(); getAcclDegree(); getGyroDegree(); compFilter(); TCNT0 = 99; } 가속도 센서와 자이로 센서 값을 읽어오는건 이전에 올린 소스가 있음 MPU6050_read() 함수는 지난 포스팅 참조 -Click- void getRawData() { buffer[0] = MPU6050_..
ATmega128 - PWM Mode 14 소스 atmega128 / pwm / pwm mode 14 / atmega128 pwm #include void main(void) { DDRB = 0xFF; DDRE = 0xFF; PORTB = 0xFF; PORTE = 0xFF; /* FastPWM 14 mode setting */ TCCR1A |= (1
ATmega128 - MPU6050 레지스터 읽기 atmega128 / mpu6050 / gy-521 / 자이로 / 가속도 / 센서 TWI 통신으로 레지스터 0x3B부터 0x40, 0x43부터 0x48까지 그러니까 가속도 XYZ 출력과 자이로 XYZ 출력 레지스터를 읽기까지 성공함. 읽어들인 RAW 데이터를 정제하는데 머리가 아픔 MPU는 ATmega128을 사용했고 GY-521의 SCL -> PD0 / SDA -> PD1에 연결 사용된 센서는 MPU-6050 3축 가속도 / 3축 자이로 / 온도를 감지 오프셋을 설정 / 필터로 안정적인 값을 추출하는 작업을 해야 하는 것 같은데 아직 완벽히 이해하지 못함. 아래의 소스에서 getRawData();는 레지스터에서 읽은 단순한 값을 각 변수에 저장함. 변수의 내용을 확인 하기 위해선 텍스트 LCD로 확인하..