roboforum.ru

Технический форум по робототехнике.

HMC6352 и mega8

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

HMC6352 и mega8

Сообщение Raskolin » 22 мар 2011, 01:16

По мануалу написал код для проверки работоспособности hmc6352. Вроде как если значения меняются, то норм. Собрал на макетке. Подключил. Вроде как пошли разные значения, но через несколько секунд все замерло. После сколько не включал выдает 00 00. Так вот я не пойму то ли я дурак, т.е. изначально все было плохо, ничего не изменялось и в коде ошибка, то ли с hmc6352 что то?

Код: Выделить всёРазвернуть
#include <mega8.h>

// I2C Bus functions
#asm
   .equ __i2c_port=0x18 ;PORTB
   .equ __sda_bit=2
   .equ __scl_bit=1
#endasm
#include <i2c.h>   


// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
#define adress_write 0x42
#define adress_read 0x43
// Declare your global variables here
usart_write(char byte)
{
while(!(UCSRA & (1<<5)))
{
}
UDR=byte;

}

i2c_re()
{
i2c_start();
i2c_write(adress_write);
i2c_write(0x41);
delay_ms(10);
i2c_start();
i2c_write(adress_read);
usart_write(i2c_read(1));
usart_write(i2c_read(0));
i2c_stop();
}


void main(void)
{
PORTB=0x00;
DDRB=0x00;
DDRB.0=1;
PORTB.0=1;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
TIMSK=0x00;
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// I2C Bus initialization
i2c_init();
usart_write('C');
usart_write('O');
usart_write('n');
usart_write('n');
usart_write('e');
usart_write('c');
usart_write('t');
usart_write(' ');
usart_write('O');
usart_write('k');

while (1)
      {
PORTB.0=~PORTB.0;
i2c_re();
delay_ms(1000);
      };
}


Модератор Setar:Используйте впредь тег CODE пожалуйста
Raskolin
 
Сообщения: 20
Зарегистрирован: 22 мар 2011, 01:02

Re: HMC6352 и mega8

Сообщение Raskolin » 22 мар 2011, 11:12

хм. Переписал так, что бы на терминал выводились числа и поднял со стола. Значения начали меняться. Только это больше напоминает инклинометр, чем магнитометр. Если лежит на столе как не крути всегда 0. Если поднять со стола и наклонить вправо, то значения начинают меняться от 0 до 11, а если влево то от 3599 до 3588. :/ чет не понимать я
Raskolin
 
Сообщения: 20
Зарегистрирован: 22 мар 2011, 01:02

Re: HMC6352 и mega8

Сообщение Radist » 22 мар 2011, 14:10

весь код не осилил, но проверьте инициализацию ног. Там вначале число 18, это биты 3 и 4, за ними написано что и2ц это биты 1 и 2. Но скорее всего я не прав, просто в коде не разобрался.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: HMC6352 и mega8

Сообщение Raskolin » 22 мар 2011, 18:38

18 указывает на порт. И сейчас он значения то выдает, только эти значения указывает на положение крена относительно земли.
Raskolin
 
Сообщения: 20
Зарегистрирован: 22 мар 2011, 01:02

Re: HMC6352 и mega8

Сообщение SkyStorm » 23 мар 2011, 00:50

Ты брал готовый модуль? или паял сам?
Фотки покажи?
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: HMC6352 и mega8

Сообщение Raskolin » 23 мар 2011, 03:04

Готовый модуль. И судя по Вашей подписи модуль брал у Вас.
http://test.roboforum.ru/product_11067.html
Raskolin
 
Сообщения: 20
Зарегистрирован: 22 мар 2011, 01:02

Re: HMC6352 и mega8

Сообщение SkyStorm » 24 мар 2011, 02:10

Обычно с этим модулем проблем нет.
Но на текущий момент ничем не могу помочь, нахожусь в Вене.
30го вернусь в Москву и смогу посмотреть что там как с ним.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: HMC6352 и mega8

Сообщение SkyStorm » 03 май 2011, 15:43

Как успехи с новым модулем?
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: HMC6352 и mega8

Сообщение Raskolin » 07 май 2011, 17:02

Норм. Новый модуль сразу же заработал.
Raskolin
 
Сообщения: 20
Зарегистрирован: 22 мар 2011, 01:02


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 8