GSM kezelése... Csengetésnél zavarodik...

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
szancso55
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. július 7. hétfő, 6:00

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

Sziasztok,egy kis segitség jól jönne.........
alapvetően egy gsm modul hivását azonositaná be és ha jó elküldi egy rutinra..
Működik is csinálja amit kell,csak amikor végrehajtja, utána még nyolcszor -
tizszer ugrál a figyel és a beolvas között,utána marad csak figyelőben
Mintha nem ürülne ki a buffer
A do-loop elején végén csak azért iratom ki hogy a karakterek változásán lássam a futást.....

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

$regfile = "m88def.dat"
$crystal = 11059200
$baud = 1200

Dim Sorosbe As String * 20
Declare Sub Figyel
Declare Sub Beolvas

'---------------
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portc.1 , Db7 = Portc.2
Config Lcd = 16 * 2
'---------------
Config Serialin = Buffered , Size = 20 , Bytematch = None

Enable Interrupts
Clear Serialin

'-------------------------------- Figyel-----------------------------------

Figyel:

Do
Cls                                                                                 '
Lcd "Figyel***" ,
Waitms 200

If Ischarwaiting() = 1 Then
  Input , Sorosbe
  Waitms 500
End If

If Mid(sorosbe , 2 , 5) = "RING" Then Beolvas

Cls
Lcd "Figyel+++"
Waitms 200

Loop

'---------------------------------Beolvas------------------------------------
Beolvas:
Cls
Lowerline
Lcd "Beolvas  :" ; Sorosbe
Clear Serialin
Wait 1
Call Figyel
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Én azon csodálkozom, hogy egyáltalán megy a program...

Sok call/sub: egymásba ágyazva: elfogy a buffered (hwstack/swstack/frames)
Programodnak se füle, se farka :)

A GSM alapban nem 9600 bps?

Néhány tipp:

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

declare sub valami()
.
.
.
do
' 'Foprogram
loop

sub valami()
.
.
Return
A ischarwaitting az azt jelenti, hogy valami van a soros bufferben. Bármi, szemét, hiba, stb. Így NE fuss inputra!

Tipp:

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

config serialin=buffered, size=20, bytematch=13 'Az enter vege
dim entervan as byte
do
if entervan then
  entervan=0 
  input ....
endif
loop

chatmatch0:
 entervan=1
return

Az AVR és a GSM felől/felé is kapcsold le a helyi visszhangot.
Bascom: Echo off
GSM: ATE0


A csengetésnél nem 1 db RING<enter> / sec az ismétlődés?
Avatar
szancso55
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. július 7. hétfő, 6:00

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

Szia , köszi a gyors infót, ezzel a pár sorral csak egy beérkező karaktersort akartam azonositani...azért a második karaktertől vettem, mert ennél az (enfora) modunál a RING elött még jön valami furcsa karakter ezért ezt figyelembe kellett venni.
Az 1200 -at én adtam meg AT parancsban, bármi lehetne...
Azt meg kipróbáltam, ha bármi"szemét" érkezik, azt átlépi ezzel a pár sorral , és Figyel tovább...



Ezt többször átolvastam, de szerintem igy csináltam....


Néhány tipp:

Kód:
declare sub valami()
.
.
.
do
' 'Foprogram
loop

sub valami()
.
.
Return
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

A végén a "call figyel" az mi?
Hol a sub figyel() ?

Olvasd át újra :) :P (szemtelen ikonom nincs :) )
Avatar
szancso55
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. július 7. hétfő, 6:00

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

Szép estét Robert köszi a választ ..
a "sub Figyel az ötödik sorban van,
a call ---t pedig a Bascom utasitáskészletben találtam, és kezdöként ki mertem próbálni...


"With the CALL statement, you can call a procedure or subroutine."


Nem is baj hogy nincs szemtelen ikon, mert csak tanácsot szerettem volna kérni.....


jó hétvégét, jó pihenést kivánok....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Az a declare az 5. sorban.

A sub felepitese:

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

declare sub valami() 'itt definialom

call valami() 'itt hivom meg

sub valami()'Ez a szubrutin.... Ilyened NINCS
.
.
return
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

És a tényleges SUB?

sub valami()
return
Válasz küldése