avrrobot
20.01.2012, 17:27
Hallo,
Leider habe ich heute schon wieder ein Problem. :(
Heute wollte ich mal meine SRF05 er testen.
Hardware ist ein Atmega8 mit 16 Mhz, welcher I2C Slave ist.
Der eine Anschluss (SRF05 ist im Modus mit nur einem Port) ist B1.
Ach ja: Die LED auf dem SRF05 blinkt sehr schnell.
Ich verwende folgenden code: (Hoffentlich habe ich nicht wieder so einen dämlichen Leichtsinnsfehler wie letztes mal drin)
Über die serielle Schnittstelle bekomme ich dann immer 0 rein.
#include "twislave.h"
#include <util/twi.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>
#define SLAVE_ADRESSE 0x50
int main()
{
init_twi_slave(SLAVE_ADRESSE);
DDRB |= (1<<PB1);
i2cdata[0] = 5;
uint16_t leng;
while(1)
{
DDRB |= (1<<PB1);
PORTB |= (1<<PB1);
_delay_us(20);
PORTB &= ~(1<<PB1);
DDRB &= ~(1<<PB1);
while(!(PINB & (1<<PB1)));
while((PINB & (1<<PB1)))
{
leng++;
_delay_us(5);
}
i2cdata[0] = leng;
leng = 0;
_delay_ms(50);
}
}
MfG avrrobot
Edit: Ok, Problem gefunden!
Leider habe ich heute schon wieder ein Problem. :(
Heute wollte ich mal meine SRF05 er testen.
Hardware ist ein Atmega8 mit 16 Mhz, welcher I2C Slave ist.
Der eine Anschluss (SRF05 ist im Modus mit nur einem Port) ist B1.
Ach ja: Die LED auf dem SRF05 blinkt sehr schnell.
Ich verwende folgenden code: (Hoffentlich habe ich nicht wieder so einen dämlichen Leichtsinnsfehler wie letztes mal drin)
Über die serielle Schnittstelle bekomme ich dann immer 0 rein.
#include "twislave.h"
#include <util/twi.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>
#define SLAVE_ADRESSE 0x50
int main()
{
init_twi_slave(SLAVE_ADRESSE);
DDRB |= (1<<PB1);
i2cdata[0] = 5;
uint16_t leng;
while(1)
{
DDRB |= (1<<PB1);
PORTB |= (1<<PB1);
_delay_us(20);
PORTB &= ~(1<<PB1);
DDRB &= ~(1<<PB1);
while(!(PINB & (1<<PB1)));
while((PINB & (1<<PB1)))
{
leng++;
_delay_us(5);
}
i2cdata[0] = leng;
leng = 0;
_delay_ms(50);
}
}
MfG avrrobot
Edit: Ok, Problem gefunden!