Go Down

Topic: Un aiuto da chi ha atmel studio (Read 535 times) previous topic - next topic

cece99

Jan 14, 2013, 04:47 pm Last Edit: Jan 14, 2013, 04:50 pm by cece99 Reason: 1
Ciao a tutti, devo compilare questo programma con atmel studio, qualcuno potrebbe compilarlo al posto mio (per attiny85)? (il download pesa 799MB.....)
Code: [Select]
/*

Touchscreen based bluetooth mouse



microcontroller: ATTiny85

author: Vinod S

email: vinodstanur at gmail dot com

date: 12/1/2013

homepage: http://blog.vinu.co.in

compiler: avr-gcc

Copyright (C) <2013> <http://blog.vinu.co.in>

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program. If not, see <http://www.gnu.org/licenses/>.

*/

#include <avr/io.h>

#define F_CPU 9600000

#include <util/delay.h>

#include <avr/interrupt.h>



unsigned char data;

volatile char trigger;



void adc_init()

{

DIDR0 |= 1 << ADC2D;

ADMUX |= 1 << MUX1;

ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

ADCSRA |= (1 << ADEN);

}



int adc_read(char a)

{

ADMUX = a;

int dig;

ADCSRA |= 1 << ADSC;

while (ADCSRA & (1 << ADSC)) ;

dig = ADCW;

return dig;

}



void uart_send_byte(unsigned char data)

{

unsigned char i;

TIMSK0 &= ~(1 << OCIE0A);

TIFR0 |= 1 << OCF0A;

TCNT0 = 0;

TIMSK0 |= 1 < OCIE0A;

PORTB &= ~(1 << PB3);

while (!(TIFR0 & (1 << OCF0A))) ;

TIFR0 |= 1 << OCF0A;

for (i = 0; i < 8; i++) {

if (data & 1)

PORTB |= 1 << PB3;

else

PORTB &= ~(1 << PB3);

data >>= 1;

while (!(TIFR0 & (1 << OCF0A))) ;

TIFR0 |= 1 << OCF0A;

}

PORTB |= 1 << PB3;

while (!(TIFR0 & (1 << OCF0A))) ;

TIFR0 |= 1 << OCF0A;

}



print(char *p)

{

while (*p) {

uart_send_byte(*p++);

}

}



void uart_print_num(int i)

{

if (i < 0) {

uart_send_byte('-');

i *= -1;

} else if (i == 0) {

uart_send_byte('+');

uart_send_byte('0');

return;

} else

uart_send_byte('+');

char count = 0;

unsigned char b[5] = { 0 };

while (i) {

b[count++] = i % 10;

i /= 10;

}

for (count = 4; count >= 0; count--)

uart_send_byte(b[count] + '0');

}



main()

{

int x, y;



DDRB |= 1 << PB3;

PORTB |= 1 << PB3;

TCCR0A |= 1 << WGM01; // compare mode

TCCR0B |= (1 << CS00); //no prescaler

adc_init();

OCR0A = 83; //for baudrate 115200

char a = 0;

while (1) {

DDRB |= (1 << PB2) | (1 << PB0);

DDRB &= ~((1 << PB4) | (1 << PB1)); //ADC 2

PORTB &= ~((1 << PB4) | (1 << PB1));

PORTB |= 1 << PB2;

PORTB &= ~(1 << PB0);

// _delay_ms(10);

x = adc_read(2);



DDRB |= (1 << PB4) | (1 << PB1);

DDRB &= ~((1 << PB2) | (1 << PB0)); //ADC 1

PORTB &= ~((1 << PB2) | (1 << PB0));

PORTB |= 1 << PB1;

PORTB &= ~(1 << PB4);

// _delay_ms(10);

y = adc_read(1);

if (x < 900 && y < 900) {

print("X: ");

uart_print_num(x);

uart_send_byte(' ');

print("Y: ");

uart_print_num(y);

uart_send_byte('\n');

}

}

}
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

flz47655

#1
Jan 14, 2013, 06:40 pm Last Edit: Jan 14, 2013, 06:52 pm by flz47655 Reason: 1
O cribbio, anche le richieste di compilazione  ]:D
Puoi compilarlo con l'ide di Arduino, alla fine si appoggia a GCC
Ho provato con Atmel Studio 6

Error   1   'TIMSK0' was not declared in this scope
Error   2   'TIFR0' was not declared in this scope
Error   3   ISO C++ forbids declaration of 'print' with no type [-fpermissive]

Secondo me non è per un ATTINY85 nonostante i commenti.. guarda che è per un ATTiny13

Update: te l'ho compilato per l'ATTiny13 se vuoi scaricarlo per quel micro è allegato
Prossima volta non cambiare micro senza dire nulla nei commenti, non è detto che siano compatibile a livello di registri

Ciao

cece99


O cribbio, anche le richieste di compilazione  ]:D
Puoi compilarlo con l'ide di Arduino, alla fine si appoggia a GCC
Ho provato con Atmel Studio 6

Error   1   'TIMSK0' was not declared in this scope
Error   2   'TIFR0' was not declared in this scope
Error   3   ISO C++ forbids declaration of 'print' with no type [-fpermissive]

Secondo me non è per un ATTINY85 nonostante i commenti.. guarda che è per un ATTiny13

Update: te l'ho compilato per l'ATTiny13 se vuoi scaricarlo per quel micro è allegato
Prossima volta non cambiare micro senza dire nulla nei commenti, non è detto che siano compatibile a livello di registri

Ciao

uff, mi tocca comprare un attiny13, alla fine ho installayo atmel studio, grazie mille comunque ;)
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

Go Up