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
 äntligen fixat det
 äntligen fixat detgav 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 - 
				Mindmapper
- Inlägg: 7190
- 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.
 Man ändrar ju hastigheten när man ansluter till comporten, ansluter man till fel comport händer det NADA
 Man ändrar ju hastigheten när man ansluter till comporten, ansluter man till fel comport händer det NADA 
 
				


