1wire-eszközök

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

Hozzászólás Szerző: kefeur »

Sziasztok.

Azt hiszem jó hírrel szolgálhatok .

Bascom-ba 1wire emuláció

A Dallas 1wire ad konverterét emulálja egy tiny45-ös chippel

http://bascom.at.ua/publ/1-1-0-1

Ott van a kód is .

Nekem kicsit bonyolultnak tűnik , de működik.
Hihi , és az adc kezelés....

Szóval lehet vesézgetni :D
Kefeur
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az ADC poén benne. Itt a végét jelző bitre vár, és ha az ADC lefutott, akkor bebillen...

Az Inline ASM nem tetszik, de ez igen erősen kihegyezett projekt....

Nálam M8-ra íródik át a kód... És persze belekerül a "Mi is legyek valójában' projektbe....
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

Hozzászólás Szerző: kefeur »

Arra gondoltam , ki kellene emelni az 1wire Slave oldali kezelését .
Közérthetővé tenni .
Sajnos ez a képességeimet meghaladja.
Pedig néha jó lenne az '1 vezetéken oda vissza kommunikáció' - két avr közt :) .
Kefeur
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A tervek közt ott van, az 1-Wire fejezet végén....
Avatar
arong
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 4. péntek, 6:00

Hozzászólás Szerző: arong »

Sziasztok!

Most kezdtem avrekkel foglalkozni.
Egy Serial iButtont szeretnék vele kiolvastatni, de a 1wreset parancs után az err tartalma 1 lesz. Ha jól értettem ez azt jelenti, hogy nem csinálta meg a busz alaphelyzetbe állítását. Itt a program amit írtam az oldal segédletei alapján, utánna egy összehasonlítás jönne. De elöbb ki kéne olvasni belőle a kódját.

Config Portb.3 = Output
Config 1wire = Portb.1

Dim Kod(8) As Byte
Dim I As Byte

Do

1wreset

If Err = 1 Then

Set Portb.3

Else

Reset Portb.3
End If

1wwrite &H33

For I = 1 To 8

Kod(i) = 1wread()

Next

1wreset
If Err = 1 Then
Set Portb.3
Else
Reset Portb.3
End If

Loop
End

Előre is köszi!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

kefeur írta:Arra gondoltam , ki kellene emelni az 1wire Slave oldali kezelését .
Közérthetővé tenni .
Sajnos ez a képességeimet meghaladja.
Pedig néha jó lenne az '1 vezetéken oda vissza kommunikáció' - két avr közt :) .
Szerintem nem sok értelme van! (Ha lenne, már megoldották volna.)
Ha belegondolsz a 1Wire Slave-nek állandóan figyelni kel a buszt, hogy mikor szólítják meg.
Most ha ezt figyeled mást, nem tudsz csinálni, vagy lemaradsz a megszólításról.
Ha figyelés helyett megszakításban kezdeményezel akkor, pedig ha más eszközzel van forgalom egyfolytában megszakítást fogsz kapni! Vagyis a Slave AtMega teljesen alkalmatlan lesz más munkára.
:cry:
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

2 AVR között miért nem jó a soros port? Ha a sorost egy OC meghajtóval egyvezetékessé teszed, szinte ugyan ott vagy. (mondjuk 8051 családban már jórégen van címregiszter, szóval csak akkor kapsz megszakítást, ha a cím stimmel). Szóval megfelelően nagy sebességű átvitelnél csak a beépített célhardve a nyerő szerintem is.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

1W slave eroforrasigenyes, int alapon megy. Minden egyes lefuto el megszakitast general...:(
Avatar
arong
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 4. péntek, 6:00

Hozzászólás Szerző: arong »

4.7k-val és 2.2k-val is próbáltam sehogy sem sikerült.
nincs valami beállítás amit be kell állítani, hogy menjen az 1wire.
A Compiler menüben beállítottam a használni kívánt portot és confignál is beírtam. Attiny 2313-mal próbálkozom.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az 1wire esetén semmiféle plusz beállítás nem kell....
A chipen van külső kvarc? a fusebiteknel megmondtad neki, hogy ne az alapertelmezett belso 1 MHzrol jarjon?
A _teljes_ programot be tudod masolni? Ill azt hogy az options alatt esetleg mas chipet, orajelet allitottal e?

A prg elejen erdemes a chipet, orajelet definialni...

Kód: Egész kijelölése

$regfile = "ATtiny2313.dat"
$crystal = 7372800
Ha belső 1 MHzrol jar (ill a biztositekbiteket nem piszkaltad), akkor $crystal=1000000 'nem baj h nem kvarc, hanem ez orajelet ad meg!
Avatar
arong
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 4. péntek, 6:00

Hozzászólás Szerző: arong »

Az órajelet nem definiáltam. Az volt a hiba.
Köszönöm a gyors segítséget. Tökéletesen működik.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

:)

Az 1wire időszeletérzéeny....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Válasz küldése