|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Ned Jan 20, 2013 10:02 am Naslov sporočila: RFM12 zanesljivost prenosa podatkov |
|
|
Testiram RFM12 povezavo.
Dosegel sem, da na 1000 telegramov dobim 4 napačne.
Kolikšna je pričakovana zanesljivost podatkov. Je 4 napake na 1000 dober ali slab rezultat? |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Pon Jan 21, 2013 7:03 am Naslov sporočila: |
|
|
4/1000 je zelo dober rezultat. Kakšno hitrost si uporabil za prenos podatkov in na kakšni razdalji si to testiral. Na kateri frekvenci delata TFM12. Hvala _________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Pon Jan 21, 2013 8:45 am Naslov sporočila: |
|
|
Hm, jaz sem pa mislil, da je to slab rezultat.
Testiral sem na razdalji od sobe do kuhinje, morda 15m
na 433 Mhz s hitrosjo 9600 Bd.
Testiranje ustavil pri
$,T1 on :217 ,*4A 18 0D DOBER dobri 2516 slabi 31 |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Pon Jan 21, 2013 5:02 pm Naslov sporočila: |
|
|
Zmanjšaj hitrost na 1200 kar je za prenos tvoje količine podatkov več kot preveč. Jast imam sedaj na 1200 in 100m razdalje. Uporabljam CRC8 za
kontrolo podatkov. Če paket ni uspešno sprejet zahtevam ponovni odgovor.
Prijetno delo še naprej. _________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Tor Jan 22, 2013 3:34 pm Naslov sporočila: |
|
|
In si kaj meril, kolikšna je zanesljivost prenosa?
Bom pa probal kot praviš z hitrostjo 1200 Bd |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Sre Jan 23, 2013 6:32 am Naslov sporočila: |
|
|
Vilko,
Ob nepravilnem crc-ju pošljem na drugo stran zahtevo za ponovni pošiljanje podatkov, zato se z računanjem zanesljivosti prenosa nisem bavil. V mojih
rešitvah so podatki dinamični v obliki bajt ali word. _________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sre Jan 23, 2013 9:13 am Naslov sporočila: |
|
|
Ja, hvala Rudi.
Seveda se da programirati pošiljanje zahteve za ponovitev telegrama.
Kaj naj rečem? Sem len in pretežno zaseden z drugimi nalogami, ki jih mora opraviti procesor. Običajno kar ignoriram napačno sprejet telegram.
Telegrami so običajno neke vrste raporti, poročila, ki jih sužnji pošiljajo gospodarju ciklično. Računam pač, da bo v naslednjem ciklu telegram uspešno prispel. Če gospodar pošlje ukaz, v naslednjem raportu zazna, je ukaz izveden ali ni, in ponovi ukaz, če je bil ingoriran s strani sužnja.
Do sedaj sem uporabljal RS485 zvezo, ki se je izkazala za zanesljivo.
Tole z RFM12 je bolj študija, ker so ga nekateri hvalili, kako dobro daleč nese.
Nisem še realiziral tvojega predloga, a ga bom.
Lep pozdrav |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Čet Jan 24, 2013 5:51 pm Naslov sporočila: |
|
|
RudiP je napisal/a: | Zmanjšaj hitrost na 1200 kar je za prenos tvoje količine podatkov več kot preveč. Jast imam sedaj na 1200 in 100m razdalje.
|
Hej, Rudi, kako pa nastaviš 1200 Bd?
Kolikor gledam nastavitve za RFM12 ni mogoče nastaviti na 1200 Bd.
Kako to nastaviš ti? |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Čet Jan 24, 2013 8:03 pm Naslov sporočila: |
|
|
Vilko moja napaka. Najnižja hitrost je 2400, odgovoril sem na hitro brez preverit. Vedel sem da je najnižja hitrost očitno pozabil pa da je tu 2400. prijetno delo še naprej. _________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Pet Jan 25, 2013 3:33 pm Naslov sporočila: |
|
|
Kako je z timer-interrupt rutino in RFM12?
Sprejemni program je lepo sprejemal program, kot ste videli zgoraj.
Želel sem programu dodati nekaj vsebine, za to potrebujem timer interrupt, a čim sem ga programiral, je program nehal sprejemati.
ALI SPIMOVE uporablja timer? in če ja, katerega? Mimogrede, poukusil sem z Timer0 in Timer1 - rezultat je isti. Če je programirana timer rutina,
Koda timer:
Koda: |
' - - - - - - - - - - - - Timer0 - - - - - - - - - - - - - - - - - -
Const Timer1reload = 10
config timer1=timer,prescale = 1024
load timer1 , Timer1Reload
on ovf1 Timer1_isr
enable timer1
start timer1
enable interrupts
Dim Sekundabit As Bit
Dim Senddelay As Byte
Dim Cetrtsekbit As Bit
Dim Ti As Word
Goto Skip2
Timer1_ISR:
load timer1, Timer1Reload
Incr Ti
If Ti > 999 Then ' 1000 msec = sekunda
Set Sekundabit
Ti = 0
End If
If Senddelay < 255 Then Incr Senddelay
Return
Skip2:
|
celoter program v priponki |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sob Jan 26, 2013 10:14 am Naslov sporočila: |
|
|
Zožil se sum na eno samo instrukcijo:
Timer interrupt dela.
Glede na timer interrupt se postavi sekundabit vsako sekundo.
V glavnem programu vsako sekundo pretaknem ledico - utripanje - dela
V istem programu pišem na software uart - pokvari prebrano vsebino.
Če je instrukcija Koda: | Print #2 , "Sekunda"
| komentirana, tedaj je izhod pravilen, in ledica utripa sekundno:
Citiram: | $,T1 on :25 ,*79 17 0D DOBER dobri 1 slabi 1
$,T1 on :26 ,*7A 17 0D DOBER dobri 2 slabi 1
$,T1 on :27 ,*7B 17 0D DOBER dobri 3 slabi 1
$,T1 on :28 ,*74 17 0D DOBER dobri 4 slabi 1
$,T1 on :29 ,*75 17 0D DOBER dobri 5 slabi 1
$,T1 on :30 ,*7D 17 0D DOBER dobri 6 slabi 1 | Če pa pustim, da se koda izvaja, dobim garbage, kot temu rečemo:
Citiram: | Sekunda
Ou·Ö}ľDx7$ř,T1 on :32 ,*7F 16 0D SLAB dobri 0 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
OÔv±}ľDx1$<0>ˆ‰‰ząéÍͱ©ÝĹÝÁ"= I‘˝‰ÉĄ/š±…‰Ą/jRţSekunda
Sekunda
Sekunda
Sekunda
Ou·}ľDv`7<0>R"b˘Ĺ˝ąéÍѱ©ÝĺĹÝÁ"= I‘˝‰ÉĄOš±…‰Ą/jRţSekunda
| Koda,ki se izvaja vsako sekundo je sledeča:
Koda: | If Sekundabit = 1 Then
Toggle Portc.6
Reset Sekundabit
Print #2 , "Sekunda"
End If
|
Imate kako idejo? Bila bi dobrodošla.
A, ja še to: software uart je definiran tako:
Koda: | Open "coma.7:9600,8,n,1" For Output As #2 'izhod na A7 - pin 10 konektorja
|
|
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sob Jan 26, 2013 10:21 am Naslov sporočila: |
|
|
Ma, ne vem, kaj se dogaja.
Ko sem končal pisanje prejšnjega prispevka, in spet odprl terminal, sem dobil:
Citiram: | $,T1 on :174 ,*4C 18 0D DOBER dobri 142 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :175 ,*4D 18 0D DOBER dobri 143 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :176 ,*4E 18 0D DOBER dobri 144 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :177 ,*4F 18 0D DOBER dobri 145 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :178 ,*40 18 0D DOBER dobri 146 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :179 ,*41 18 0D DOBER dobri 147 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda | Kar je seveda popolnoma pravilno, pa nisem se dotaknil mikroprocesorja...
Ja, čudna so pota... |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Sob Jan 26, 2013 10:37 am Naslov sporočila: |
|
|
Vilko,
edino, kar mi pride na misel, je sprememba temperature...
Lp
Jure |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Sob Jan 26, 2013 11:53 am Naslov sporočila: |
|
|
Joj, joj,
zakaj vstrajate na generiranju sekund tako da imate prekinitev vsako milisekundo?
Timer1 omogoča prekinitev vsako sekundo, tako bo ostalo dovolj časa za ostalo delo, prekinitev se bo zgodila samo enkrat v sekundi. |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sob Jan 26, 2013 11:56 am Naslov sporočila: |
|
|
To je zato, ker potrebujem (v planu) zakasnitev pošiljanja telegrama.
Senddelay bajt postavi vsak interupt sprejema na nulo,
Interrupt rutina ga premika naprej vsako milisekundo
Rutina za oddajanje telegrama čaka, da senddelay zrase na določeno random vrednost v milisekundah. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|