TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: diegostreetbob en 05 de Julio de 2012, 18:39:44
-
Hola a todos,
estoy tratando de comenzar con avr, vengo de microchip con compilador ccs, me he descargado al avrstudio6 para empezar a trastear y la verdad no se si es que pienso en ccs o que pasa, por ejemplo en el programita de mas abajo con el simulador del avrstudio porque cuando pasa a encencer portd.2, se apagada portd.1??sin que haya una instruccion para ello.
Tampoco encuentro una manera de manejar determinador pines del puerto, digamos como output_high(pin_d1), supongo que algo hago mal.
Y para terminar no he emcontrado ningún manual del compilador avrgcc con las instrucciones que tiene en C, para el ccs compiler lo pille a la primera.
Alguien me puede ayudar o abandono ya, je, je :)
* enceder1led.c
*
* Created: 05/07/2012 19:09:03
* Author: HD-USA
*/
#include <avr/io.h>
#include <avr/sfr_defs.h>
//#include <util/delay.h>
#include "../../../../../../../../Program Files (x86)/Atmel/Atmel Studio 6.0/extensions/Atmel/AVRGCC/3.4.0.65/AVRToolchain/avr/include/avr/iom8a.h"
int main(void)
{
while(1)
{
//TODO:: Please write your application code
DDRD=0xff;
PORTD=0b00000001;
PORTD=0x02;
PORTD=0x00;
PORTD=0x04;
}
}
-
Hola , busca dentro de estos ejemplos tal vez alguno te ayude a resolver tu problema.
http://www.micro2c.com/
Salu2 :)
-
estoy tratando de comenzar con avr, vengo de microchip con compilador ccs, me he descargado al avrstudio6 para empezar a trastear y la verdad no se si es que pienso en ccs o que pasa
Efectivamente, no sólo estás pensando en CCS, sino que en sus consecuencias, ya que no es ANSI C, y el compilador de los Atmel es ANSI C :D
PORTD=0b00000001; //PORTD.0 en alto, el resto en bajo
PORTD=0x02; //PORTD.1 en alto, el resto en bajo
PORTD=0x00; //PORTD todo en bajo
PORTD=0x04; //PORTD.2 en alto, el resto en bajo
Para poner en alto un sólo pin sin afectar al resto puedes hacer:
PORTD|= 1<<2;
Eso pondrá a 1 el bit 2 del PORTD, sin afectar al resto de los bits del puerto.
para ponerlo a cero:
PORTD&= (1<<2) ^ 0xFF;
Siempre puedes hacer una MACRO que facilite el uso :D
-
Buenas,
te aconsejo el siguiente link:
http://www.nongnu.org/avr-libc/user-manual/index.html
ahí puedes encontrar manuales, cómo usar las librerías, ejemplos, etc.
-
((:-))Ok, muchas gracias, voy a seguir cacharreando un poco mas,
Aver como cambio chip en mi coco para olvidarme del ccs, con el que llevo miles de líneas.
muchas gracias pero al igual tengo que preguntar mas cosas...... :)