Witam
walcze juz dzisiaj ca³y dzien z 1wire i DS1990
i niestety pora¿ka
niemóg³by mi ktos dac podprogramów obs³uguj±cych 1wire?
AzaZeL
Witam
walcze juz dzisiaj ca³y dzien z 1wire i DS1990
i niestety pora¿ka
niemóg³by mi ktos dac podprogramów obs³uguj±cych 1wire?
AzaZeL
U¿ytkownik "AzaZeL" <AzaZeL snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:dml6rg$ilh$ snipped-for-privacy@bgnet.pl...
Hmm, ale gdzie masz problem? Wszystkie czasy odpowiednie ?
Pozdrawiam £ukasz
U¿ytkownik "AzaZeL" <AzaZeL snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:dml6rg$ilh$ snipped-for-privacy@bgnet.pl...
Czek dysa³t men: http://www.hpinfotech.ro/html/download.htmNie do¶æ, ¿e CVAVR ma biblioteki do obs³ugi 1Wire, to jeszcze masz w downloadzie przyk³ad z DS1990 w³a¶nie. Nawet, je¿eli nie bêdziesz tego u¿ywaæ, to zawsze mo¿esz podpatrzeæ, jak to jest zrobione.
Fishman
ale ja chce na gcc
AzaZeL
nie wiem :(
rece mi juz opadaja
AzaZeL
U¿ytkownik "AzaZeL" <AzaZeL snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:dml8um$qip$ snipped-for-privacy@bgnet.pl...
To podejrzyj sobie, jak oni to zrobili i przepisz na gcc/porównaj z w³asnym kodem.
Fishman
BTW: A właśnie, jakiś czas temu ktoś tu pisał o pomyśle oprogramowania
1Wire AFAIR w przerwaniach, bez pętli czekającej aktywnie kwanty czasu. I jak się zakończył tamten projekt? Chętnie bym się zapoznał z kodem źródłowym (i pewnie nie tylko ja).U¿ytkownik "AzaZeL" <AzaZeL snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:dml916$qnl$ snipped-for-privacy@bgnet.pl...
Zapodaj w pêtli jak±¶ komendê read co¶tam, i przylukaj oscyloskopem co ³azi po magistrali, czy tajmingi s± dobre, czy w ogóle odpowiada, czy nie pomyli³e¶ kolejno¶ci bitów. Wszystko wyjdzie na ekranie. Dobrze mieæ oscyl z
2 podstawami, albo wyprowadziæ dodatkowy sygna³ wyzwalania z procka synchronizuj±cy pocz±tek transmisji.Pozdrawiam £ukasz
Napisalem sobie podpogramy do 1 wire :)
szkoda ze dopiero teraz ale niebylo mnie jakis czas
okaza³o sie ze opó¼nienia by³y nie takie jak chcia³em napisa³em w symulatorze swoje i zadzia³a³o bez gadania :) jestem z siebie dumny :)
oto podprogramy dla kwarcu 8 Mhz i ATmega32
//>>>>>>>>>>>>>> 1 - wire <<<<<<<<<<<<<<<<<<<<<
void onewire_reset(void) { DDRD |= 1<<w1; PORTD &= ~(1<<w1); //wyzerowanie 1w czekaj_500us(); PORTD |= 1<<w1; czekaj_500us(); }
void onewire_write_bit(unsigned char bit) { DDRD |= 1<<w1; PORTD &= ~(1<<w1); //wyzerowanie 1w czekaj_3us(); if ((bit & 0x01) == 1) PORTD |= 1<<w1; czekaj_70us(); PORTD |= 1<<w1; }
unsigned char onewire_read_bit(void) { unsigned char bit = 0;
DDRD |= 1<<w1; PORTD |= 1<<w1; czekaj_3us(); PORTD &= ~(1<<w1); czekaj_10us(); DDRD &= ~(1<<w1); PORTD &= ~(1<<w1);
if(bit_is_set(PIND, w1)) bit = 1 ; if(bit_is_clear(PIND, w1)) bit = 0; czekaj_60us(); return bit; }
void onewire_write(unsigned char byte) { unsigned char i = 0;
for(i = 0; i < 8; i++) { onewire_write_bit(byte >> i); czekaj_70us(); }
czekaj_70us(); }
unsigned char onewire_read(void) { unsigned char byte = 0; unsigned char i = 0;
for(i = 0; i < 8; i++) { byte |= (onewire_read_bit() <>>>>>>>>>>>>> koniec 1 - wire <<<<<<<<<<<<<<<<<<<<<
void czekaj_3us(void) {
}void czekaj_10us(void) { unsigned char i; for(i=0;i<3;i++); asm("nop"); asm("nop"); asm("nop"); asm("nop"); }
void czekaj_20us(void) { unsigned char i; for(i=0;i<10;i++); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); }
void czekaj_60us(void) { unsigned char i; for(i=0;i<40;i++); }
void czekaj_70us(void) { unsigned char i; for(i=0;i<47;i++); }
void czekaj_500us(void) { unsigned char i; for(i=0;i<210;i++); for(i=0;i<149;i++); }
jak sie komus przyda to niech sie nie meczy jak Ja :) Pozdrawiam AzaZeL
AzaZeL <AzaZeL snipped-for-privacy@poczta.onet.pl> napisał(a):
A w którym to miejscu łaskawco , sprawdzasz "presence pulse " ??? void onewire_write_bit(unsigned char bit)
Nad powyższym , też jeszcze popracuj ;)
Pzdr Piotrek
PS Jak miło się krytykuje ;-)
Celowo niesprawdzalem presence pulse bo mi to potrzebne nie jest
jak mi³o sie odpowiada
AzaZeL
Have something to add? Share your thoughts — no account required.
Ask the community — no account required