Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 lut 2026, o 18:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 10 sty 2014, o 19:41 
Offline
Nowy

Dołączył(a): 10 sty 2014
Posty: 2
Pomógł: 0

Witam,

w moim projekcie używam magnetometru :
http://nettigo.pl/products/244

problem leży chyba po stronie komunikacji po i2c, a mianowicie korzystam z biblioteki peter fleury i2c .

w momencie wywołania metody :

Kod:
unsigned char i2c_start_wait(unsigned char address)
{
    uint8_t   twst;

   // send START condition
   TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);

   // wait until transmission completed
   while(!(TWCR & (1<<TWINT)));

   // check value of TWI Status Register. Mask prescaler bits.
   twst = TW_STATUS & 0xF8;
   if ( (twst != TW_START) && (twst != TW_REP_START)) return 1;

   // send device address
   TWDR = address;
   TWCR = (1<<TWINT) | (1<<TWEN);

   // wail until transmission completed and ACK/NACK has been received
   while(!(TWCR & (1<<TWINT)));

   // check value of TWI Status Register. Mask prescaler bits.
   twst = TW_STATUS & 0xF8;
   if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;

   return 0;

}/*



..program po prostu się zapętla.



Ostatnio edytowano 12 sty 2014, o 00:49 przez matiifcb, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 14:19 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Ostatnio edytowano 6 lis 2015, o 14:10 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 14:31 
Offline
Nowy

Dołączył(a): 10 sty 2014
Posty: 2
Pomógł: 0

Dokładnie chodzi o tą bibliotekę:
http://homepage.hispeed.ch/peterfleury/group__pfleury__ic2master.html

pisząc zapętla się, miałem na myśli to, iż w momencie wywołania metody void i2c_start_wait ( unsigned char addr )
.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



w metodzie w/w warunek:
if ( (twst != TW_START) && (twst != TW_REP_START)) continue;

zawsze jest spełniony . Czym to może być spowodowane?



Ostatnio edytowano 12 sty 2014, o 00:48 przez matiifcb, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 15:31 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Proszę poprawić kody stosując się do zamieszczania listingów w znacznikach SYNTAX



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO