jueves, 4 de julio de 2013

Especificaciones del TMR0 en PIC16F628A



TMR0    TIMER0
En rojo aparecen las instrucciones en MikroBasic.

Timer mode

Para poner el timer TMR0  en modo temporizador hay que poner a 0 el bit 5 del registro OPTION (T0CS)  T0CS_bit=0

Counter mode

Para poner el timer TMR0 en modo contador hay que poner  a 1 el bit 5 del registro OPTION (T0CS) T0CS_bit=1
El contador aumentara la cuenta de TMR0 cada vez que detecte un flanco en el pin 3 (RA4/T0CKl). Podemos seleccionar el tipo de flanco actuando sobre el bit 4 del registro OPTION (T0SE)   T0SE_bit=0 para ascendente y T0SE_bit=1 para descendente.
Para usar un reloj externo en el uso de los flancos a través del pin 3, debemos realizar la sincronización descrita en el datasheet pag.27, aptdo 6.2.1.

Interrupciones

Cuando el contador llega a 256 se reinicia pasando a 0 y hace que el bit de interrupción del TMR0 (T0IF) se ponga a 1. Esto detiene el timer. Para habilitarlo otra vez, hay que poner el bit T0IF a 0 T0IF_bit=0.  Para deshabilitar la interrupción para que el contador no pare, hay que poner a 0 el bit 5 del registro INTCON (T0IE) T0IE_bit=0

Prescaler

Sobre el timer TMR0 actúa el prescaler (compartido con el Wacht Dog Timer). Para asignarlo a TMR0 pondremos a 0 el bit 3 del registro OPTION (PSA) PSA_bit=0
Para seleccionar el divisor del prescaler escribiremos los bits PS0, PS1 y PS2 según el valor de la siguiente tabla:
Bit Value             TMR0 Rate              WDT Rate
000
½
1/1
001
¼
½
010
1/8
¼
011
1/16
1/8
100
1/32
1/16
101
1/64
1/32
110
1/128
1/64
111
1/256
1/128






NOTA:

GIE: Global Interrupt Enable bit              INTCON<7>      GIE_bit
1 = Enables all un-masked interrupts
0 = Disables all interrupts

Ejemplo: Habilitar TMR0 en modo temporizador infinito contando lo más lento posible

GIE_bit=0  ‘Deshabilita todas las intrerrupciones del pic’
T0CS_bit=0 ‘Ponemos el TMR0 en modo temporizador’
PSA_bit=0 ‘Asignamos el prescaler a TMR0 en vez de a el WDT’
PS0_bit=1 ‘El divisor del prescaler sera de 1/256, para ello
PS1_bit=1 ponemos el valor 111 a los bits PS0, PS1 y PS2’
PS2_bit=1




domingo, 14 de abril de 2013

Instalar Windows 7 en Lenovo B580 con UEFI

O DE COMO VOLVERSE LOCO PARA DOWNGRADEAR CON LAS NUEVAS BIOS

La verdad es que no quiero hacer pesado ni largo este articulo... He pasado un montón de horas al pie del portátil y, ahora que lo tengo fresco, lo voy a compartir con quien se encuentre en la misma tesitura, porque vaya tela...

Punto de partida:

 En navidades decidí completar mi propio plan cascada: regale mi portátil y me compre uno nuevo. Lenovo, líder en el ranking de fiabilidad fue mi opción (vaya chasco)... El modelo? Lenovo B580 revision 4337.
Cuando me lo trajeron a casa me lleve la agridulce noticia de que llevaba ya cargado Windows 8... jummm.. un sistema operativo para tablets en mi portátil friki?.. Terrible!  No es el momento para analizar esa evolución del Windows 7, pero solo diré que no me gustó ni un pelo, asique decidí downgradearlo e instalar Win7 Ultimate SP1.




Con la ayuda de esta pequeña maravilla y muchísima paciencia (la web de soporte de Lenovo es un completo desastre , pues hay como 4 o 5 versiones de drivers a descargar), fui guardando en el otro Pc  todos los drivers y utilidades de mi modelo de portátil, para luego ir a tiro hecho cuando instalara el Win 7...

Bien, procedo a instalar el Win 7... de repente, todo son problemas: bloqueos, mensajes de error de GPT, una tal UEFI... ¿qué demonios pasa?


Mi misión en Internet: Tratar de entender que sucede e instalar el Windows 7


Como resumen, y para no enredar al personal estas son las conclusiones:
  • UEFI es un nuevo tipo de BIOS que solo deja instalar sistemas operativos firmados digitalmente. Cualquier otra cosa (Linux, backups de tu Windows) mientras este activado UEFI no se instalará
  • Para entender algo más de la cuestión, aquí un link a la explicación de Tabla de particiones GUID
  • Para proceder como hemos instalado siempre sólo tenemos que tener en cuenta tres cuestiones:
    1. Hemos de desactivar la UEFI entrando en la BIOS. Cada BIOS es diferente, por eso debéis buscar palabras en los menús como UEFI, EFI, Secure y Boot.
    2. Hemos de activar el soporte para compatibilidad UEFI o en inglés y su acrónimo CSM support. Buscadlo así por los menús.
    3. BIOS Secure Boot UEFI
       1. Desactivar Secure Boot (UEFI) en Lenovo B580
      Activar soporte CSM lenovo b580
      2. Activar Soporte CSM  en Lenovo B580
    4. Si no habéis podido acceder a la BIOS y el sistema operativo que intentáis desinstalar es Windows 8, debéis aseguraros de apagar realmente el equipo, ya que este SO incorpora un sistema de apagado/inicio rápido que realmente lo que hace es hibernarlo.    (Para que aparezca el botón de "power" presionar Crtl-Alt-Del ) Aquí más opciones....