PDA

Επιστροφή στο Forum : avr



kwstakis
28-01-07, 16:03
λοιπον μετα απο καιρο και χωρις να ειχα καταφερει κατι ξανα ασχολουμε με τον avr εχω κατεβασει το avr studio και το win avr μπορει καποιος που ξερει απο avr να μου πει πως συνεργαζονται και πως πρεπει να ξεκινησω???? :D προγραμματιστη εχω τον stk 500.ε

kwstakis
30-01-07, 00:45
:cry: :cry: :cry:

pet
30-01-07, 04:26
δεν ξέρω πως συνεργάζονται αλλά δεν πρέπει να είναι και πολύ πολύπλοκο

έχω να ανοίξω το avr studio πολύ καιρό και νομίζω ότι στην αρχή όταν
φτιάχνεις project σε ρωτάει τι compiler/assembler θα χρησημοποιήσεις.

μπορείς να κάνεις το εξής μέχρι να μάθεις τι παίζει (θα πρέπει να παίξεις με το πρόγραμμα
και να το μάθεις απέξω)..

να χρησημοποιοήσεις makefiles για να κάνεις compile κώδικα C με winavr και μετά το hex
να το φορτώνεις στο avrstudio για emulation/programming.

ψάξε και στο avr-freaks καθώς και στα application notes της Atmel, νομίζω το είχε
πάρει το μάτι μου κάπου εκει πέρα.

kwstakis
30-01-07, 10:16
ευχαρηστω!αλλα παλι... :evil: !!!!απο οτι εχω διαβασει σε αλλα post γραφεις τον κωδικα και κανεις compile μεσα απο το avr studio.μετα ομως ..... :cry: :cry: :cry: και κατι αλλο το avr studio μπορεις να γραψεις οτι γλωσσα θελεις :?: :?:

kwstakis
30-01-07, 14:05
μηπως μπορει καποιος να ποσταρει ενα προγραμα για ενα led σε γλωσσα c??? :lol:

chip
30-01-07, 18:21
Το avr studio δεν περιλαμβάνει c compiler (Μόνο assembler (και simulator)).
Βέβαια είναι φτιαγμένος έτσι ώστε να μπορεί να συνδεθεί με c compiler γι αυτό ενδεχομένως να δει κανεις κάποιες ανάλογες προτροπες.

pet
30-01-07, 19:08
μηπως μπορει καποιος να ποσταρει ενα προγραμα για ενα led σε γλωσσα c??? :lol:



#define F_CPU 3.68E6
#include <util>
#include <avr>

int main&#40;void&#41; &#123;

DDRB |= 1<<PB0; /* set PB0 to output */

while&#40;1&#41;
&#123;
PORTB &= !&#40;1<<PB0&#41;; /* LED on */

int j;
for &#40;j=0; j<10; j++&#41;
_delay_ms&#40;10&#41;;

PORTB |= 1<<PB0; /* LED off */

for &#40;j=0; j<90; j++&#41;
_delay_ms&#40;10&#41;;
&#125;
return 0;
&#125;



τα led δεν θα τα συνδέεις απευθείας στο πόδι του μικροελεγκτή (άνοδος στο πόδι, κάθοδος στην γή)
γιατί το led ζητάει μπόλικα mA και το μC δεν έχει να στα δώσει

να κάνει κάτι τρανζιστορικό πάντα όπως αυτό που χρησημοποιεί το ίδιο το stk500

kwstakis
31-01-07, 01:58
:P ευχαρηστω παιδια!!!!chip οταν λεμε compile δεν λεμε να μας μετατρεψει τον κωδικα σε hex???γιατι αυτο το κανω και γραφω σε c??? :shock: :?: μου λες λιγο για το κυκλωμα σε πιο ποδι μπαινει + - και το led...

kopla
31-01-07, 04:35
-- Με το Compile εννοούμε να μετατρέψουμε τον κώδικά μας σε κατάλληλη μορφή για τον μικροελεγκτή, η οποία είναι το HEX αρχείο.
Η γλώσσα C ή και άλλες -όπου υπάρχουν- είναι προς ευκολία του προγραμματιστή. Η καλύτερη συγγραφή κώδικα γίνεται σε assembly πάντα.

-- Από ότι βλέπω στον κώδικα, χρησιμοποιείται το ποδαράκι 0 της πόρτας B. Βλέπε από το datasheet ποιο είναι αυτό το pin.

-- Η άνοδος σε ένα LED, ή αλλιώς (+) είναι το pin με το μεγαλύτερο μήκος.

-- Για να ανάψεις ένα LED - όπως προαναφέρθηκε, καλό είναι να μην χρησιμοποιείς το ρεύμα από τις εξόδους του ελεγκτή. Στην επισυναπτόμενη εικόνα, έχω 2 τρόπους. (1)> με tranzistor, όπου για να ανάψει πρέπει να κάνουμε HIGH το RB0, και (2)> κάνοντας LOW το pin αυτό.

** Ανάλογα το LED και την τροφοδοσία, ίσως χρειαστεί και μία αντίσταση σε σειρά για να περιοριστεί το ρεύμα.
** Σε καμία από τις περιπτώσεις στη εικόνα μου δεν κάνουμε sink ρεύμα από τον mc.

EDIT ... πρόσθεσα τη φωτό. :oops:

pet
31-01-07, 05:08
no img

kwstakis
31-01-07, 15:23
οκ.μεχρι εδω καλα.. :D θα δω και το data.εχω τον at90s1200 που εχει καταργηθει απο οτι ξερω τεσπα!!!θα το προσπαθησω το απογευμα και θα γραψω νεοτερα και κατι αλλο αν σε αυτο τον κωδικα στο πορτ0 πχ γραψω 2 θα εχω εξοδο στο 2??? οσο για την περιγραφη του led οκ δεν ειμαι και ασχετος απο επεξεργαστες εχω μεσανυχτα :lol: :D ΕΥΧΑΡΗΣΤΩ ΠΑΝΤΩΣ:!: :!:

pet
31-01-07, 15:29
έλα; που να το έχεις το δύο; δεν καταλαβα

kwstakis
31-01-07, 16:11
PORTB &= !(1<<PB0); /* LED on */ εδω αν εγω γραψω PORTB &= !(1<<PB1);
θα μου βγαλει εξοδο απο το 1 τη portb

kwstakis
31-01-07, 16:20
μου βγαζει τα παρακατω error
../leddd.c:3:16: error: f:/winavr/bin/../avr/include/avr: Permission denied
../leddd.c: In function 'main':
../leddd.c:7: error: 'DDRB' undeclared (first use in this function)
../leddd.c:7: error: (Each undeclared identifier is reported only once
../leddd.c:7: error: for each function it appears in.)
../leddd.c:7: error: 'PB0' undeclared (first use in this function)
../leddd.c:11: error: 'PORTB' undeclared (first use in this function)
../leddd.c:15: warning: implicit declaration of function '_delay_ms'

pet
31-01-07, 16:49
δεν εχεις δηλώσει μικροελεγκτή στο compile για τα errors

δεν εχεις καλή σύνταξη στο κείμενο σου, δεν καταλαβαίνω τι λες!

kwstakis
31-01-07, 16:52
γραφω τον κωδικα που εγραψες στο avr studio και μου βγαζει αυτα τα error exω δηλωσει μικροελεγκτη :(

kwstakis
31-01-07, 19:00
κανω κατι λαθος?βαζω αυτο τον κωδικα στο avr studio κανω compile και μου βγαζει αυτα τα error :(

kwstakis
02-02-07, 16:26
εεεεεεεεε :?: :?: :?: :?: :?:

pet
02-02-07, 23:29
kwsta είσαι στο σημείο που πρέπει να ψαχτείς μόνος σου δυστηχώς!

πρέπει να ξέρεις C και κάποια βασικά πράγματα για compile και linking

...δοκίμασε να αδειάσεις το πρόγραμμα κ διάφορα για debug

kwstakis
02-02-07, 23:37
οκ pet σωστα!!!παντως το avr studio υποστιριζει c σωστα?????

ALAMAN
02-02-07, 23:39
Ναί το AVRsutdio υποστηρίζει C και assembly.

kwstakis
03-02-07, 01:39
ok,περασα ενα προγραμμα απλα να αναβοσβηνει ενα led :lol: αυριο θα το δω και στην πραξη!!εχω το 90ς1200 εκτος απο την τροφοδοσια του δεν θελει κρισταλο σωστα???

ALAMAN
03-02-07, 01:51
Εγώ με κάποιον μαγικό τρόπο το είχα κάνει να δουλεύει και χωρίς κρύσταλο.
Το θέμα είναι πώς το έκανα.
Κάνε έναν κόπο και ανέβασε λίγο τους κώδικες που έγραψες.

kwstakis
03-02-07, 02:06
δεν τους εχω εδω αν θες θα τους περασω το πρωι απ τη δουλεια!!παντως μην φανταστεις οτι το εφτιαξα μονος που τετοια τυχη?? :oops: σε ενα βιβλιο που εχω λεει οτι ο 1200 δεν θελει κρισταλω :( αλλα στο datasheet.ειδα οτι εχει :? θα δειξει ελπιζω παντως να τα καταφερω!!!!!εχω φαει πολλες ωρες :evil: :twisted: και θα ειναι μια ικανοποιηση

kopla
03-02-07, 02:36
λεει οτι ο 1200 δεν θελει κρισταλω αλλα στο datasheet ειδα οτι εχει

> Μπορεί να έχει ενσωματωμένο κρύσταλλο. Η σύνηθης τιμή -τουλάχιστον στους PIC - είναι 4 MHz.

pet
03-02-07, 09:38
ναι έχει ενσωματωμένο κρύσταλλο (internal rc oscillator)

βρε παιδιά μου ανοίχτε κανα datasheet στην τύχη δεν θα καταφέρετε τίποτα

pet
03-02-07, 09:40
δεν τους εχω εδω αν θες θα τους περασω το πρωι απ τη δουλεια!!παντως μην φανταστεις οτι το εφτιαξα μονος που τετοια τυχη?? :oops: σε ενα βιβλιο που εχω λεει οτι ο 1200 δεν θελει κρισταλω :( αλλα στο datasheet.ειδα οτι εχει :? θα δειξει ελπιζω παντως να τα καταφερω!!!!!εχω φαει πολλες ωρες :evil: :twisted: και θα ειναι μια ικανοποιηση

ναι θα είναι μια ικανοποίηση!

για το θέμα του κρυστάλου δες το section FUSES

ανάλογα με την ρύθμιση τους διαλέγει και ποιο ρολόι θα χρησημοποιηθεί

kwstakis
05-02-07, 17:45
#include <avr>

/// Typedefs //////////
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

/// Defines ///////////
#define forever 117
#define LEDOFF PORTB |= (1<<4)
#define LEDON PORTB &= ~(1<<4)

/// Prototypes ////////
void InitPorts (void);
void Delay (u32 count);

int main(void)
{
InitPorts();

while (forever)
{
LEDON; Delay(20000);
LEDOFF; Delay(20000);
}
}

void InitPorts(void)
{
DDRB |= 1<<DDB4;
}

void Delay(u32 count)
{
while(count--);
}


αυτο ειναι το προγραμμα!!οπως ειπα πριν το περναω στο ατ90ς1200 αλλα δεν κανει τιποτα :cry:(ρολοι χρησιμοποιω το εσωτερικο) υπαρχει περιπτωση να μην κανει γι αυτο τον μe :?: θα το περναγε ωμος????

ALAMAN
05-02-07, 17:54
Τί γλώσσα είναι;;

kopla
05-02-07, 18:04
Μοιάζει και πιστεύω πως είναι C. (void, typedef, {}, ; prototypes !)
Αυτό το while (117) {} δεν καταλαβαίνω...

ALAMAN
05-02-07, 18:12
Δεν μπορώ να βγάλω το hex.

kwstakis
05-02-07, 20:13
ναι c ειναι..αλλα δεν ξερω αν κανει για το 1200...μηπως ξερεται κανεναν κωδικα απλο για το συγκεκριμενο με??
αυτο που ποσταρε ο φιλος pet μου βγαζει error..και κατι αλλο αφου δεν χρησημοποιω εξωτερικο κρυσταλο δεν θελει αλλα περιφεριακα σωστα στο κυκλωμα σωστα??

kwstakis
05-02-07, 20:19
#include <avr>

/// Typedefs //////////
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

/// Defines ///////////
#define forever 117
#define LEDOFF PORTB |= (1<<4)
#define LEDON PORTB &= ~(1<<4)

/// Prototypes ////////
void InitPorts (void);
void Delay (u32 count);

int main(void)
{
InitPorts();

while (forever)
{
LEDON; Delay(20000);
LEDOFF; Delay(20000);
}
}

void InitPorts(void)
{
DDRB |= 1<<DDB4;
}

void Delay(u32 count)
{
while(count--);
}

kwstakis
05-02-07, 20:23
κατι γινεται και οταν κανω paste κατι αλαζει..και τον ποσταρει λαθος :evil: :twisted: :evil:

kwstakis
06-02-07, 01:14
δεν ξερω γιατι αλλα βγαζει σφαλμα οταν κανω επικοληση τον κωδικα εδω τον κωδικα τον βρηκα εδωhttp://www.avrtutor.com/tutorial/thermo/ledblink.htm

kwstakis
06-02-07, 19:09
alaman το ειδες καθολου??απ τη σελιδα??

kwstakis
08-02-07, 11:57
μηπως μπορει καποιοσ να στειλε με mail εναν κωδικα για να αναβοσβηνει ενα led μολις παρει τροφοδοσια??και λεω με mail γιατι σε κωδικεσ οπως καταλαβα και απ αυτον που εβαλα και εγω στο ποστ δεν ξερω αλλα εμφανιζονται με καπιο λαθος :oops: :oops: pubamike@hotmail.com :D ευχαρηστω :!:

gsmaster
08-02-07, 15:21
Πρέπει να επιλέξετε την επιλογή "Απενεργοποίηση HTML σ' αυτή τη δημοσίευση" που υπάρχει κάτω απο το πλαίσιο που γράφετε το μήνυμα.
Επίσης για να μην χάνει την μορφή του ο κώδικας, και να είναι εύκολοδιάβαστος, καλό είναι να χρησιμοποιείτε τα tags

πχ


...
o kwdikas edw mesa
...


:)

Αν ποστάρετε συχνά κώδικα μπορείτε να έχετε μόνιμα επιλεγμένες τις επιλογές αυτές απο το προφίλ σας