Teensy ++ 2.0 (A estrenarlo).

Iniciado por Meta, 21 Diciembre 2010, 19:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Ivanchuk

#10
Por lo que pude seguir del hilo me parece que no estan hablando del mismo lenguaje.
Lo que pusiste Meta es C y me parece que skapunky esta hablando de asm, no? Capaz que estoy diciendo barbaridades  :rolleyes:, corrijanme si me equivoco.

Cita de: Meta en 22 Diciembre 2010, 22:56 PM
Esta parte del código viene así:
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "usb_debug_only.h"
#include "print.h"
Por lo que veo, hay que quitar los # que son como comentarios, si los deja los lee como comentario y el compilador lo ignora.


include <avr/io.h>
include <avr/pgmspace.h>
include <util/delay.h>
include "usb_debug_only.h"
include "print.h"


Si eso es C, no son comentarios los #, son directivas de compilacion.

Por ejemplo:
// Teensy 2.0: LED is active high
#if defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB1286__)
#define LED_ON        (PORTD |= (1<<6))
#define LED_OFF        (PORTD &= ~(1<<6))

// Teensy 1.0: LED is active low
#else
#define LED_ON    (PORTD &= ~(1<<6))
#define LED_OFF    (PORTD |= (1<<6))
#endif


Si las macros __AVR_ATmega32U4__ y __AVR_AT90USB1286__ estan definidas, el compilador te va a tomar LED_ON y LED_OFF como
#define LED_ON        (PORTD |= (1<<6))
#define LED_OFF        (PORTD &= ~(1<<6))


Sino
#define LED_ON    (PORTD &= ~(1<<6))
#define LED_OFF    (PORTD |= (1<<6))


Cual es la diferencia? Lo puso en el comentario "LED is active high".
Al parecer en la nueva version de la placa para encender el led hay que poner a 1 el bit 6 del puerto D del micro (PD6 = pin numero 31) mientras que en la placa 1.0 lo encendes con un cero, lo que te obliga a hacer un esquema pull up (o un inversor) para encender el led.
PORTD imagino que debe leer el estado del puerto D.

De hecho si te fijas en una imagen que pusiste en el primer post de los pines de la placa teensy, vas a ver que en el pin 6 dice "led on 6", bueno ese es el bit 6 del puerto D y ahi es donde tenes que conectar el led (ponele en serie una resistencia de 4,7k para no quemar la salida del micro y manda todo a GND).
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

skapunky

Nono yo hablo en C.

sbit LED = P4^1;
LED = 1;

LED se declara como variable que sustituye al pin 1 del puerto 4 y despues con la asignación lo pones en estado alto (1).

Quizá el problema es en que las librerias que usa meta no son iguales a las librerias que he utilizado yo con los Atmel.
Killtrojan Syslog v1.44: ENTRAR

Ivanchuk

#12
Ah sbit no es del compilador sdcc? Parece ser q sdcc ya dejo de dar soporte para los avr.
Que compilador estas usando meta??
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

Meta

Arduino.

Digo con pequeños avances para el manual en PDF.

Descargar manual Teensy++ 2.0 en PDF DEMO 2.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

skapunky

Sbit yo lo utilizo con Keil Unvision, de todas formas, hace ya un tiempo descubrí un compilador en C para micros con muy buen aspecto, ademas tiene muchas librerias. Se llama CCS.
Killtrojan Syslog v1.44: ENTRAR