Otevírač vrat prozváněním mobilem s 16F84A

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
petrme12
Příspěvky: 5
Registrován: 03 kvě 2010, 02:00

Otevírač vrat prozváněním mobilem s 16F84A

#1 Příspěvek od petrme12 »

Ahoj, řeším jedno dilema protože nám namontovali bránu na otevírání do objektu kde máme ustájené naše koníčky.Dopsal jsem do programu (http://bramo.ic.cz/bramo50.htm)pozice ale nejde to kompilovat, asi malá pamět processoru.Mohli by jste mě poradit jak to upravit aby to četlo více tlf.čísel? :wink: Neřadím se mezi guru v jednočipech :cry: Díky moc
Přílohy
59tlf.asm
(91.82 KiB) Staženo 140 x

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

Re: Otevírač vrat prozváněním mobilem s 16F84A

#2 Příspěvek od procesor »

petrme12 píše:...Dopsal jsem do programu (http://bramo.ic.cz/bramo50.htm)pozice
:?: pozice :?:

Uživatelský avatar
Banda
Příspěvky: 1170
Registrován: 22 bře 2005, 01:00
Bydliště: OV

#3 Příspěvek od Banda »

Taky jsem to moc nepobral, ale když pochybí paměť v uCPU, tak se většinou použije externí.

Uživatelský avatar
petrme12
Příspěvky: 5
Registrován: 03 kvě 2010, 02:00

Re: Otevírač vrat prozváněním mobilem s 16F84A

#4 Příspěvek od petrme12 »

procesor píše:
petrme12 píše:...Dopsal jsem do programu (http://bramo.ic.cz/bramo50.htm)pozice
:?: pozice :?:
pridal jsem tam cteni z vice pozic na SIM karte (59)...tohle samozrejme je problem

Uživatelský avatar
Standa33
Příspěvky: 283
Registrován: 07 lis 2009, 01:00

#5 Příspěvek od Standa33 »

Jen jsem to tak prohlédl a možná by to bylo dobré upravit. Části kodu co se vícekrát opakují přepsat na podprogramy(přehlednější,úspora místa).

např: je tam call atplus - dále se používá CPBR= což by se také dalo předělat na call cpbr=(jelikož ta část co provádí CPBR= tam je asi 60x)

V části kde je čtení ze SIM - volání příkazu AT+CPBR=1, pak = 2 .. 3 ..4,
tj. načtení 4 čísel.

Ale od 5-50 se stále opakuje AT+CPBR = 4, nemělo by se toto také měnit?

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#6 Příspěvek od procesor »

Mám obavu,že v protokole je vyhradené na poradie čísla v SIM iba jedno h1,....h9, možno ?? h0

Edit: pre CPBR= DVOCIFERNé treba ešte jeden call posli.
To načítavanie všetkých pozícií sa dá spraviť aj kratšie ako je pôvodné so štyrmi. Len to pre 50.číslo bude bude dlho trvať.

Uživatelský avatar
petrme12
Příspěvky: 5
Registrován: 03 kvě 2010, 02:00

#7 Příspěvek od petrme12 »

procesor píše:Mám obavu,že v protokole je vyhradené na poradie čísla v SIM iba jedno h1,....h9, možno ?? h0

Edit: pre CPBR= DVOCIFERNé treba ešte jeden call posli.
To načítavanie všetkých pozícií sa dá spraviť aj kratšie ako je pôvodné so štyrmi. Len to pre 50.číslo bude bude dlho trvať.
Takze da se to nejak zrychlit? Treba po zapnuti telefonu nactenim vsech cisel do EEPROM?Ale ta je mala takze jedine externi ale tohle nevim jak tam dopsat :cry:

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#8 Příspěvek od procesor »

A čo tak zmeniť procesor, prerátať dekadické číslo na bin (z 12 miestneho stačí 5bytové, ak by sa redukovala predvoľba 420/421 na 0/1 stačili by 4byty, takže sa to zmestí do EEPROM niektorých PIC. Použitím USART-u by sa tiež dačo ušetrilo.
Zoznam čísiel sa dá zo SIM načítať iba raz po resesete. Uložiť sa dajú aj do programovej pamäte podobne ako do EEPROM (napr.16F87x)

Uživatelský avatar
petrme12
Příspěvky: 5
Registrován: 03 kvě 2010, 02:00

#9 Příspěvek od petrme12 »

procesor píše:A čo tak zmeniť procesor, prerátať dekadické číslo na bin (z 12 miestneho stačí 5bytové, ak by sa redukovala predvoľba 420/421 na 0/1 stačili by 4byty, takže sa to zmestí do EEPROM niektorých PIC. Použitím USART-u by sa tiež dačo ušetrilo.
Zoznam čísiel sa dá zo SIM načítať iba raz po resesete. Uložiť sa dajú aj do programovej pamäte podobne ako do EEPROM (napr.16F87x)
ja sem to zacal prekopavat pro 16F628A ale tohle nezvladnu...pri zmenseni poctu radku tak to porad hlasi "Address exceeds maximum range for this processor" u te 16F84A
Přílohy
mod59tlf.asm
(78.15 KiB) Staženo 104 x

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#10 Příspěvek od Atlan »

Neprekrocil si uz pamet procesoru max 1024 prikazov.Najlepsie pozriet v diasembleri.

Je lepsie pozuzivat toto

list p=16F84A, R=DEC
include "p16F84A.inc"

list p=16f628A, R=DEC
include "p16f628A.inc"

Mas vybraty spravny procesor v projekte ?
Nastavenie poistiek ???
Po starte v banke 0 by i mal vypnut Analo vstypy
movlw b'00000111' ; digitalni vstupy na PORTu A (PIC16F627 a 628)
movwf CMCON

Uživatelský avatar
petrme12
Příspěvky: 5
Registrován: 03 kvě 2010, 02:00

#11 Příspěvek od petrme12 »

Atlan píše:Neprekrocil si uz pamet procesoru max 1024 prikazov.Najlepsie pozriet v diasembleri.

Je lepsie pozuzivat toto

list p=16F84A, R=DEC
include "p16F84A.inc"

list p=16f628A, R=DEC
include "p16f628A.inc"

Mas vybraty spravny procesor v projekte ?
Nastavenie poistiek ???
Po starte v banke 0 by i mal vypnut Analo vstypy
movlw b'00000111' ; digitalni vstupy na PORTu A (PIC16F627 a 628)
movwf CMCON

Tak pro 16F84A to co jsem napsal nejde, nedostatek pameti pro instrukce :( Argument out of range ...
Tlucu to pro 16F628 a porovnavam to s jednim zdrojakem a zrejme narazim.Potrebuji help, tohle nedavam...pomuzete me? mam uz cast kodu prepsane ale rutinu pro cteni z mobilu a porovnavani mezi pameti ram1 a ram1b nevim :(

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“