dataöverföring, baud?
dataöverföring, baud?
Hejsan
Jag försöker få igång så jag kan skicka kommandon från min pic16f88 till min mobiltelefon (t28). Och nu har jag suttit n antal timmar med en kod som jag inte förstår och har slutligen gett upp. dock så tror jag inte att mitt problem är alltför svårt att lösa eftersom jag redan har riggat upp det hela så att jag kan skicka kommandon från min pc via hyperterminal till mobilen.
jag kan absolut ingenting om datorkommunikation men jag antar att det är synkron överföring som sker vilket är beroende av timning för varje bit. grejen är den att jag kan ändra baudraten i hyperterminal bäst jag vill och det fungerar ändå :/ hur fungerar detta i praktiken? klurar mobiltelefonen ut vilken baudrate som används vid ett givet tillfälle eller är det jag som lurat mig själv och kört samma baudrate?
något som borde göra det hela lite enklare är att det bara är en given sträng jag vill skicka till mobilen, "ATD239928309". går detta att "lösa manuellt" på något sätt? jag har inget emot att göra en gigantokod där jag ändra värdet på en utgång, lägga in delay, ändra värdet igen, delay osv tills jag lyckats skicka min sträng.
lite blandad info för den vetgirige:
http://www.tugatec.com/files/teleles/T28_R1A.pdf
http://www.frisnit.com/sms/me.html
http://passivemode.net/updates/2006/8/2 ... ntrol.html
http://www.riccibitti.com/tinyplanet/tiny_article.htm
Jag försöker få igång så jag kan skicka kommandon från min pic16f88 till min mobiltelefon (t28). Och nu har jag suttit n antal timmar med en kod som jag inte förstår och har slutligen gett upp. dock så tror jag inte att mitt problem är alltför svårt att lösa eftersom jag redan har riggat upp det hela så att jag kan skicka kommandon från min pc via hyperterminal till mobilen.
jag kan absolut ingenting om datorkommunikation men jag antar att det är synkron överföring som sker vilket är beroende av timning för varje bit. grejen är den att jag kan ändra baudraten i hyperterminal bäst jag vill och det fungerar ändå :/ hur fungerar detta i praktiken? klurar mobiltelefonen ut vilken baudrate som används vid ett givet tillfälle eller är det jag som lurat mig själv och kört samma baudrate?
något som borde göra det hela lite enklare är att det bara är en given sträng jag vill skicka till mobilen, "ATD239928309". går detta att "lösa manuellt" på något sätt? jag har inget emot att göra en gigantokod där jag ändra värdet på en utgång, lägga in delay, ändra värdet igen, delay osv tills jag lyckats skicka min sträng.
lite blandad info för den vetgirige:
http://www.tugatec.com/files/teleles/T28_R1A.pdf
http://www.frisnit.com/sms/me.html
http://passivemode.net/updates/2006/8/2 ... ntrol.html
http://www.riccibitti.com/tinyplanet/tiny_article.htm
Skulle tro att det är du som ska ställa in rätt bps mot mobilen och att
bps:en är fixad i mobilen.
Info om baud:
http://en.wikipedia.org/wiki/Baud
bps:en är fixad i mobilen.
Info om baud:
http://en.wikipedia.org/wiki/Baud
hi,
se denna link http://www.picbasic.co.uk/forum/showthr ... ght=GSM%2A
mycke om pic + gsm
Hvis det var til atmel Bascom-avr har jeg lavet programmer tiil siemens sms controller en/decode sms text 8 on/off ports ect setup via pc terminal
se denna link http://www.picbasic.co.uk/forum/showthr ... ght=GSM%2A
mycke om pic + gsm
Hvis det var til atmel Bascom-avr har jeg lavet programmer tiil siemens sms controller en/decode sms text 8 on/off ports ect setup via pc terminal

gav upp pic -> gsm och fokuserade istället på hyperterminal <-> pic och
hittade då den här sidan: http://www.oz1bxm.dk/PIC/628uart.htm
och när det väl fungerade så var det bara o koppla till mobilen.
behövde ändra en del grejer för konvertering till 16f88 och just for the record ser koden ut såhär om nån annan newb behöver:
kommentarerna stämmer inte helt..
Kod: Markera allt
include p16f88.inc
;radix dec
processor 16F88
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
;*******************************************************************
; Function: Sends alive message, then echoes characters at 9600 bps
; Processor: PIC16F628 at 4 MHz using internal RC oscillator
; Hardware: Testboard K4
; Filename: 628uart.asm
; Author: Lars Petersen, oz1bxm@qsl.net
; Website: www.qsl.net/oz1bxm/PIC/pic.htm
; Credit: Tony Nixon's test program at
; www.piclist.com/techref/microchip/16f877/setup.htm
;*******************************************************************
;LIST P=16F628, R=DEC ; Use the PIC16F628 and decimal system
;#include "P16F628.INC" ; Include header file
;__config _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON
CBLOCK 0x20 ; Declare variable addresses starting at 0x20
dataL
x
x2
x3
ENDC
ORG 0x000 ; Program starts at 0x000
;
; --------------------------------
; SET ANALOG/DIGITAL INPUTS PORT A
; --------------------------------
;
banksel CMCON
movlw 7
movwf CMCON ; CMCON=7 set comperators off
;
; ----------------
; INITIALIZE PORTS
; ----------------
;
BANKSEL PORTA
movlw b'00000000' ; set up portA
movwf PORTA
movlw b'00100000' ; RB2(TX)=1 others are 0
movwf PORTB
BANKSEL TRISA ; RAM PAGE 1
movlw 0x00
movwf ANSEL
movlw h'6E'
movwf OSCCON
movlw 0x00
movwf TRISA ; portA all pins input
movlw b'00000100' ; RB7-RB4 and RB1(RX)=input, others output
movwf TRISB
movlw 0xff
movwf x
movlw 0xff
movwf x3
goto hej
Delay macro Duration
movlw Duration
movwf x2
decfsz x,F
goto $-1
decfsz x3,F
goto $-3
decfsz x2,F
goto $-5
endm
hej
Delay .50
; ------------------------------------
; SET BAUD RATE TO COMMUNICATE WITH PC
; ------------------------------------
; Boot Baud Rate = 9600, No Parity, 1 Stop Bit
;
movlw .25 ; 0x06=9600 bps (0x0C=19200 bps)
movwf SPBRG
movlw b'00100100' ; brgh = high (2)
movwf TXSTA ; enable Async Transmission, set brgh
BANKSEL PORTA ; RAM PAGE 0
movlw b'10010000' ; enable Async Reception
movwf RCSTA
;
; ------------------------------------
; PROVIDE A SETTLING TIME FOR START UP
; ------------------------------------
;
clrf dataL
settle decfsz dataL,F
goto settle
movf RCREG,W
movf RCREG,W
movf RCREG,W ; flush receive buffer
;
; ---------
; MAIN LOOP
; ---------
;
call message ; send "16F628 alive"
loop call receive ; wait for a char
call send ; send the char
goto loop
;
; -------------------------------------------
; RECEIVE CHARACTER FROM RS232 AND STORE IN W
; -------------------------------------------
; This routine does not return until a character is received.
;
receive btfss PIR1,RCIF ; (5) check for received data
goto receive
movf RCREG,W ; save received data in W
return
;
; -------------------------------------------------------------
; SEND CHARACTER IN W VIA RS232 AND WAIT UNTIL FINISHED SENDING
; -------------------------------------------------------------
;
send movwf TXREG ; send data in W
;TransWt bsf STATUS,RP0 ; RAM PAGE 1
BANKSEL TXSTA
WtHere btfss TXSTA,TRMT ; (1) transmission is complete if hi
goto WtHere
BANKSEL PORTA ; RAM PAGE 0
return
;
; -------
; MESSAGE
; -------
;
message movlw 0x0D ; CR
call send
;movlw 0x0A ; LF
;call send
movlw 'A'
call send
movlw 'T'
call send
movlw '+'
call send
movlw 'C'
call send
movlw 'F'
call send
movlw 'U'
call send
movlw 'N'
call send
movlw '='
call send
movlw '1'
call send
movlw 0x0D ; CR
call send
movlw 0x0A ; LF
call send
return
END
-
- Inlägg: 7100
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
- Jine
- Inlägg: 1795
- Blev medlem: 21 juli 2004, 20:25:56
- Skype: Jim.Nelin
- Ort: Trångsund, Stockholm
- Kontakt:
Det kan man inteMindmapper skrev:Eftersom det normalt inte ska fungera med vilken hastighet som helst så tror jag på denna förklaring. Du har ändrat hastighet på den comport som inte är ansluten till mobilen.

