Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/12/2011 #1


Recibir SerIn Con proton en 12f683
Hola tengo un pequeño problema, pase un programa de PBP a Proton y no logro que me funcione el Serin.

Basicamente la linea de codigo que use para recibir es la siguiente...

En PBP:
serin gpio.5,n1200,10000,alarma,["12345"],b1

En Proton:
SerIn GPIO.5 ,N1200 , 10000 , alarma,[Wait("12345") , b1]


Lo que hace el programa es esperar 10 segundos por el codigo "12345" si lo recibe guarda el siguiente byte en "b1" y si no lo recibe en 10 segundos se activa la alarma.
El dato que envio es "H", si programo el pic con el programa en PBP anda bien, pero programo el que hago en Proton y no anda :S.

Device 12F683
Xtal = 4
All_Digital=True ' Coloca todo los pines como digitales (PBP alldigital)
Include "MODEDEFS.BAS"
TRISIO = %00100001 ;Pongo todo como salida menos gpio.0 ygpio.5
ANSEL = %00000000 ; Todas entradas digitales
CMCON0 = 7 ; Analog comparators off
GPIO = 0




;################################# RECEPTOR ##################################
b1 var Byte

inicio:
;puerto,velocidad,si pasan 10segundos..,va a "alarma,[Clave para aceptar datos], guarda datos en b1

SerIn GPIO.5 ,N1200 , 10000 , alarma,[Wait("12345") , b1]
If b1 = "H" Then ;Si recibe una "H" esta todo bien
Low GPIO.1 ;Apaga GPIO.1
SerOut GPIO.0,N2400,[13,10,"Llego","-Bien"]
GoTo inicio
Else
GoTo inicio
EndIf

alarma:
High GPIO.1 ;Prende GPIO.1
SerOut GPIO.0,N2400,[13,10,"ALARMA"," ALARMA"]
DelayMS 200
GoTo inicio
18/12/2011 #2


Hola.....No puedes usar el GPIO.5 por que declaraste XTAL y el mismo va instalado entre el GPIO.4 y el GPIO.5 así que te quedan fuera de la posibilidad de utilizarlos .... te sugiero que veas la HELP el comando SEROUT y me parece que lo que quisiste hacer es algo asi:

Device = 12F683
Config __31C1h
Xtal = 4
All_Digital=True ' Coloca todo los pines como digitales (PBP alldigital)
Include "MODEDEFS.BAS"
TRISIO = %101 ;Pongo como entradas gpio.0 y gpio.2 y salida gpio.1
ANSEL = %00000000 ; Todas entradas digitales
CMCON0 = 7 ; Analog comparators off
GPIO = 0



;################################# RECEPTOR ##################################
b1 var Byte

inicio:
;puerto,velocidad,si pasan 10segundos..,va a "alarma,[Clave para aceptar datos], guarda datos en b1

SerIn GPIO.2 ,813, 10000 , alarma,[Wait("12345") , b1] '1200 8b Invertido , para 2400 396 Inver
If b1 = "H" Xor b1= "h" Then ;Si recibe una "H" esta todo bien
Low GPIO.1 ;Apaga GPIO.1
SerOut GPIO.0 ,813,[13,"Llego","-Bien",10,13] '1200 8b invertido ,para 2400 396 Inver
GoTo inicio
Else
GoTo inicio
EndIf

alarma:
High GPIO.1 ;Prende GPIO.1
SerOut GPIO.0,813,["ALARMA"," ALARMA",10,13]
DelayMS 200
GoTo inicio

----------------


Saludos.

Ric.
18/12/2011 #3


ricbevi dijo: Ver Mensaje
Hola.....No puedes usar el GPIO.5 por que declaraste XTAL y el mismo va instalado entre el GPIO.4 y el GPIO.5 así que te quedan fuera de la posibilidad de utilizarlos .... te sugiero que veas la HELP el comando SEROUT y me parece que lo que quisiste hacer es algo asi:

Device = 12F683
Config __31C1h
Xtal = 4
All_Digital=True ' Coloca todo los pines como digitales (PBP alldigital)
Include "MODEDEFS.BAS"
TRISIO = %101 ;Pongo como entradas gpio.0 y gpio.2 y salida gpio.1
ANSEL = %00000000 ; Todas entradas digitales
CMCON0 = 7 ; Analog comparators off
GPIO = 0



;################################# RECEPTOR ##################################
b1 var Byte

inicio:
;puerto,velocidad,si pasan 10segundos..,va a "alarma,[Clave para aceptar datos], guarda datos en b1

SerIn GPIO.2 ,813, 10000 , alarma,[Wait("12345") , b1] '1200 8b Invertido , para 2400 396 Inver
If b1 = "H" Xor b1= "h" Then ;Si recibe una "H" esta todo bien
Low GPIO.1 ;Apaga GPIO.1
SerOut GPIO.0 ,813,[13,"Llego","-Bien",10,13] '1200 8b invertido ,para 2400 396 Inver
GoTo inicio
Else
GoTo inicio
EndIf

alarma:
High GPIO.1 ;Prende GPIO.1
SerOut GPIO.0,813,["ALARMA"," ALARMA",10,13]
DelayMS 200
GoTo inicio

----------------


Saludos.

Ric.


Muchisimasss gracias por la ayuda ricbevi, pasa que yo estaba usando el oscilador interno, pero no lo habia configurado, lo resolvi poniendo la configuracion asi

Device = 12F683
Config INTRC_OSC_NOCLKOUT,WDT_OFF,MCLRE_OFF,CP_Off,PWRTE_ ON
Xtal = 4
19/12/2011 #4


biker2k3 dijo: Ver Mensaje
Muchisimasss gracias por la ayuda ricbevi, pasa que yo estaba usando el oscilador interno, pero no lo habia configurado, lo resolvi poniendo la configuracion asi

Device = 12F683
Config INTRC_OSC_NOCLKOUT,WDT_OFF,MCLRE_OFF,CP_Off,PWRTE_ ON
Xtal = 4
Lo que me hizo suponer que utilizabas XTAL era la declaración Xtal=4 que alude al HARWARE UTILIZO "Cristal de Cuarzo de 4Mhz" externo si utilizas el oscilador interno creo que no va ya que es contradictoria con la declaración que haces en el config.....puede ser que funcione igual pero no es lo correcto. Ese PIC tiene el oscilador interno configurado por defecto en 4Mhz y si quieres cambiarlo tienes que acceder al registro de configuración del oscilador no conozco si hay una instrucción en el Basic que lo haga.
En cuanto a la declaración en el Config que yo utilice 31C1h es equivalente a
Config XT_OSC,WDT_OFF, BODEN_ON, CP_OFF,PWRTE_ON,MCLRE_OFF,CDP_OFF

ya que tu declarabas Xtal=4 en el programa original.

Ric.
19/12/2011 #5


Claro cuando me dijiste que no podia usar GPIO.5 por que declare XTAL que va entre GPIO.4 y el GPIO.5, ahi me di cuenta que lo habia configurado como si tuviera cristal externo. Ahora anda joya gracias. Ah el 12f683 creo que se puede usar a 4Mhz o 8Mhz con el oscilador interno pero no se ni probe configurarlo porque con que ande a 4 me alcanza para este proyecto. Gracias por la ayuda
19/12/2011 #6


biker2k3 dijo: Ver Mensaje
Claro cuando me dijiste que no podia usar GPIO.5 por que declare XTAL que va entre GPIO.4 y el GPIO.5, ahi me di cuenta que lo habia configurado como si tuviera cristal externo. Ahora anda joya gracias. Ah el 12f683 creo que se puede usar a 4Mhz o 8Mhz con el oscilador interno pero no se ni probe configurarlo porque con que ande a 4 me alcanza para este proyecto. Gracias por la ayuda

Según la hoja de datos tiene todas estas posibilidades de configuración de frecuencia de salida que están en esta figura que adjunto y por defecto en alimentación estándar es 4Mhz.

Ric.
Imágenes Adjuntas
Tipo de Archivo: jpg Osc12F873.jpg (37,2 KB (Kilobytes), 13 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.