XMEGA A3BU über I²C zu BMA180

Gast #2780605
Lesenswert?

Hallo ich versuche die Kommunikation zwischen dem XMEGA A3BU Board und 
einem BMA über I²C herzustellen.

Ich hoffe mir kann jemand helfen ich sitze schon seit 2 Tagen dran und 
habe so langsam keine Idee mehr. Ich benutze die ASF standard 
funktionen, daher habe ich den Quellcode einfach mal angehangen. Das 
programm bleibt bei der ersten write Funktion hängen. Über sämtliche 
Ideen und Fragen würde ich mich freuen.

Viele Grüße und bester Dank im vorraus.
1
/**
2
 * \file
3
 *
4
 * \brief Empty user application template
5
 *
6
 */
7

8
/*
9
 * Include header files for all drivers that have been imported from
10
 * Atmel Software Framework (ASF).
11
 */
12
#include <asf.h>
13

14
 #define TWI_MASTER       TWIC
15
 #define TWI_MASTER_PORT  PORTC
16
 #define TWI_SPEED        100000
17
 #define TWI_SLAVE_ADDR   0x80
18
 #define TWIS_SEND_BUFFER_SIZE 10
19
 
20
int main (void)
21
{
22
  board_init();
23
  sysclk_init();
24
  gfx_mono_init();  
25
  
26
    
27
  twi_options_t twi_opt;
28
  twi_opt.speed=TWI_SPEED;
29
  twi_opt.chip=0x00;
30
  twi_opt.speed_reg=TWI_BAUD(sysclk_get_cpu_hz(), TWI_SPEED);
31
  
32
  
33
  TWI_t twi;
34
  char data[TWIS_SEND_BUFFER_SIZE];
35
  
36
  twi_package_t packet = {
37
       .addr_length = 1,
38
     .addr      = TWI_SLAVE_ADDR,
39
       .chip        = 0x01,
40
       .buffer      = (void *)data,
41
       .length      = TWIS_SEND_BUFFER_SIZE,
42
       .no_wait     = false
43
     };
44
  
45

46
  TWI_MASTER_PORT.PIN0CTRL = PORT_OPC_WIREDANDPULL_gc;
47
  TWI_MASTER_PORT.PIN1CTRL = PORT_OPC_WIREDANDPULL_gc;
48
  
49
    sysclk_enable_peripheral_clock(&TWI_MASTER);
50
  twi_master_init(&twi,&twi_opt);
51
    twi_master_enable(&twi);
52
    
53
  ioport_set_pin_high(LCD_BACKLIGHT_ENABLE_PIN);
54
    
55
  for (int i = 0; i < TWIS_SEND_BUFFER_SIZE; i++) {
56
    data[i]=0;
57
  }
58
  
59
while(1){
60
  gfx_mono_draw_string(data, 0, 0, &sysfont);
61
  twi_master_write(&TWI_MASTER,&packet);
62
  gfx_mono_draw_string(data, 0, 0, &sysfont);
63
  twi_master_read(&TWI_MASTER,&packet);
64
  }
65
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren