THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Συστήματα Μικροϋπολογιστών => Topic started by: cyb3rb0ss on December 06, 2009, 00:23:23 am



Title: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 06, 2009, 00:23:23 am
Καλή αρχή σε όλους με τις εργασίες!
Θα επιστρέψω σύντομα με ερωτήσεις, μέχρι να έρθω βέβαια ρωτήστε και απαντήστε ελεύθερα  ;)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 07, 2009, 04:46:23 am
Οκ έχουμε τον κώδικα των καθυστερήσεων έτοιμο από το βιβλίο (για τα 20ms).

Αν θέλω να το κάνω για 3 δευτερόλεπτα και 6 δευτερόλεπτα, καταλαβαίνω ότι πρέπει να το πολλαπλασιάσω με 150 και 300 αντίστοιχα.

Πως θα κάνω rcall την delay για 3 sec?
Θα κάνω κάπου ldi τον αριθμό 150 έτσι ώστε να τον καλέσω κάπως συνδυαστικά? Με πιάνετε?  :)

Αυτά για αρχή...έχω και άλλα...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 07, 2009, 05:03:48 am
συνδιαστικά?
συνδυαστικα θες να πεις; :D
Ε 4 τα ξημερώματα είναι...
Σε ευχαριστώ πάντως...έιμαι και εγώ αρκετά αυστηρός με την ορθογραφία...μηχανικοί μεν...αλλά μην είμαστε και ανορθόγραφοι...  ;)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 07, 2009, 11:39:32 am
κάνω rcall dalay3s
και όταν φτάσει στο ret
μετά πάει πάλι στην αρχή του προγραμματος, δεν συνεχίζει από εκεί που καλέσθηκε
αντιμετοπίζει κανείς αυτό το πρόβλημα?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Καμένος on December 07, 2009, 11:42:42 am
αν το κανες με υπορουτίνα αποθήκευσες τον sreg στη στοίβα πρίν την καλέσεις και τον επανέφερες αφού τέλειωσε?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 07, 2009, 12:51:56 pm
εννοείς όπως στην σελ152
το προσπάθησα αλλά εμφανίζει error στο assemble


C:\Users\foulis\Documents\AVR\test\test.asm(1): Including file 'C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler2\Appnotes\1200def.inc'
C:\Users\foulis\Documents\AVR\test\test.asm(25): error: Invalid register
C:\Users\foulis\Documents\AVR\test\test.asm(45): error: Invalid register
C:\Users\foulis\Documents\AVR\test\test.asm(47): No EEPROM data, deleting C:\Users\foulis\Documents\AVR\test\test.eep


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 07, 2009, 12:55:26 pm
στο παράδειγμα newswich.asm
επιστρέφει κανονικα μετά το rcall delay20ms που είναι μέσα στην get_switch
αλλά δεν επιστρέφει σωστά από το get_switch, παει πάλι στην αρχή


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Καμένος on December 07, 2009, 13:04:33 pm
εννοείς όπως στην σελ152
το προσπάθησα αλλά εμφανίζει error στο assemble


C:\Users\foulis\Documents\AVR\test\test.asm(1): Including file 'C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler2\Appnotes\1200def.inc'
C:\Users\foulis\Documents\AVR\test\test.asm(25): error: Invalid register
C:\Users\foulis\Documents\AVR\test\test.asm(45): error: Invalid register
C:\Users\foulis\Documents\AVR\test\test.asm(47): No EEPROM data, deleting C:\Users\foulis\Documents\AVR\test\test.eep


ποιος register σου λέει ότι είναι invalid?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 07, 2009, 13:45:41 pm
mov R0,SREG
.
.
.
.
mov  SREG,R0
το ίδιο και για άλλο καταχωρητη αν βάλω


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Καμένος on December 07, 2009, 14:10:47 pm
Δοκίμασε in R0,SREG


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 07, 2009, 14:52:59 pm
κάνει assemble αλλά περνάει την τιμή 0 στον R0 οπότε στο ret πάει στο RESET:


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: igoutas on December 07, 2009, 18:00:08 pm
παιδια μηπως μπορει να βοηθησει κανεις με την συγκριση 2 registers???ειναι αναγκαιο να γινει με καποια subroutine???? >:( >:(


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 07, 2009, 19:33:51 pm
στο παράδειγμα newswich.asm
επιστρέφει κανονικα μετά το rcall delay20ms που είναι μέσα στην get_switch
αλλά δεν επιστρέφει σωστά από το get_switch, παει πάλι στην αρχή
βαλε στο sph το high(rammend) και στο spl το low(rammend) κατα το init.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: crystal on December 07, 2009, 21:57:23 pm
Οταν λεει ο καθε χαρακτηρας να εμφανιζεται για 6 δευτερολεπτα εννοει το καθε ψηφιο του αριθμου ή ολος ο αριθμος??
Δηλαδη αν εχουμε το 14, να εμφανιζεται για 6 sec το 1 και μετα το 4 ή ολο το 14?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 07, 2009, 22:23:43 pm
Π.χ αν είναι 14/12/80

14 για 6sec
__ για 3sec
12 για 6sec
__ για 3sec
80 για 6sec
__ για 3sec

όπου __ κενό διάστημα.

Αυτό κατάλαβα εγώ...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 07, 2009, 23:02:34 pm
Π.χ αν είναι 14/12/80

14 για 6sec
__ για 3sec
12 για 6sec
__ για 3sec
80 για 6sec
__ για 3sec

όπου __ κενό διάστημα.

Αυτό κατάλαβα εγώ...
ναι ετσι ειναι αλλα κενο=σβηστα λεντ..


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: igoutas on December 08, 2009, 01:12:14 am
ρε παιδια με την περιπτωση της ισοτητας ημερομηνιων να ασχοληθουμε???δεν αναφερει κατι η εκφωνηση!!!


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: TeeKay on December 08, 2009, 02:00:17 am
ναι, αν ειναι ισα τι τα κανουμε; να τα αναψουμε ολα μηπως; ;D


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 08, 2009, 02:52:26 am
ναι, αν ειναι ισα τι τα κανουμε; να τα αναψουμε ολα μηπως; ;D
ναι..
απλα τα αναβεις ολα και ετσι δηλωνεις οτι εχεις και αυτη την περιπτωση..


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 08, 2009, 13:40:21 pm
Οκ έχουμε τον κώδικα των καθυστερήσεων έτοιμο από το βιβλίο (για τα 20ms).

Αν θέλω να το κάνω για 3 δευτερόλεπτα και 6 δευτερόλεπτα, καταλαβαίνω ότι πρέπει να το πολλαπλασιάσω με 150 και 300 αντίστοιχα.

Πως θα κάνω rcall την delay για 3 sec?
Θα κάνω κάπου ldi τον αριθμό 150 έτσι ώστε να τον καλέσω κάπως συνδυαστικά? Με πιάνετε?  :)

Αυτά για αρχή...έχω και άλλα...
?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: mysterious on December 08, 2009, 13:44:59 pm
?

Για δημιουργία βρόχου καθυστερήσεων, χρησιμοποίησε αυτό το θαυματουργό προγραμματάκι:
http://www.electronics-lab.com/downloads/mcu/003/index.html


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: foulis on December 08, 2009, 13:46:13 pm
στο παράδειγμα newswich.asm
επιστρέφει κανονικα μετά το rcall delay20ms που είναι μέσα στην get_switch
αλλά δεν επιστρέφει σωστά από το get_switch, παει πάλι στην αρχή
βαλε στο sph το high(rammend) και στο spl το low(rammend) κατα το init.


thanks δούλεψε, επιστρέφει κανονικά.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 08, 2009, 13:49:32 pm
Οκ έχουμε τον κώδικα των καθυστερήσεων έτοιμο από το βιβλίο (για τα 20ms).

Αν θέλω να το κάνω για 3 δευτερόλεπτα και 6 δευτερόλεπτα, καταλαβαίνω ότι πρέπει να το πολλαπλασιάσω με 150 και 300 αντίστοιχα.

Πως θα κάνω rcall την delay για 3 sec?
Θα κάνω κάπου ldi τον αριθμό 150 έτσι ώστε να τον καλέσω κάπως συνδυαστικά? Με πιάνετε?  :)

Αυτά για αρχή...έχω και άλλα...
?
ρε γιατι πατε και χρησιμοποιειτε κονσερβες?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: kon_v on December 08, 2009, 22:15:24 pm
να υποθέσω αύριο λόγω κατάληψης το εργαστήριο αναβάλλεται ε????


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Matzika on December 08, 2009, 22:24:22 pm
Εχουμε τρεξει το προγραμμα μας μεχρι εκει που γινεται το delay, οι τιμες εμφανιζονται στην μνημη αλλα οχι στους registers.
Εχει κανεις καμια ιδεα??



Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 08, 2009, 22:41:49 pm
Εχουμε τρεξει το προγραμμα μας μεχρι εκει που γινεται το delay, οι τιμες εμφανιζονται στην μνημη αλλα οχι στους registers.
Εχει κανεις καμια ιδεα??


αν θες πμ τον κωδικα να σε πω πιο σιγουρα


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on December 09, 2009, 20:11:47 pm
Π.χ αν είναι 14/12/80

14 για 6sec
__ για 3sec
12 για 6sec
__ για 3sec
80 για 6sec
__ για 3sec

όπου __ κενό διάστημα.

Αυτό κατάλαβα εγώ...

αυτό πως το κάνουμε; να εμφανίζεται ο χαρακτήρας 6 sec;




και επίσης στην delay 20ms μπορεί κανείς να μου εξηγήσει στα
ldi r21, 31

ldi r20, 255

τα 31, 255 τι δείχνουν;


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on December 09, 2009, 22:00:14 pm
?

Για δημιουργία βρόχου καθυστερήσεων, χρησιμοποίησε αυτό το θαυματουργό προγραμματάκι:
http://www.electronics-lab.com/downloads/mcu/003/index.html

αυτό δουλεύει;
γιατί κάνω ένα delay αλλά κολλάει στο πρώτο wgloop2

Code:

; =============================
;    delay loop generator
;     12000000 cycles:
; -----------------------------
; delaying 11999976 cycles:
          ldi  R20, $3E
WGLOOP0:  ldi  R21, $FD
WGLOOP1:  ldi  R22, $FE
WGLOOP2:  dec  R22
          brne WGLOOP2
          dec  R21
          brne WGLOOP1
          dec  R20
          brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
          ldi  R20, $08
WGLOOP3:  dec  R20
          brne WGLOOP3
; =============================


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Kargas on December 09, 2009, 23:13:53 pm
Π.χ αν είναι 14/12/80

14 για 6sec
__ για 3sec
12 για 6sec
__ για 3sec
80 για 6sec
__ για 3sec

όπου __ κενό διάστημα.

Αυτό κατάλαβα εγώ...

αυτό πως το κάνουμε; να εμφανίζεται ο χαρακτήρας 6 sec;




και επίσης στην delay 20ms μπορεί κανείς να μου εξηγήσει στα
ldi r21, 31

ldi r20, 255

τα 31, 255 τι δείχνουν;

gemizeis tous registers toso oso otan tous miwneis kata ena, mesa se ka8e loupa, otan 8a  ftasoun 0 na sou exoun dwsei 20ms delay dld ta 31 kai 255 mas boleuoun san ari8moi, got it?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 09, 2009, 23:32:03 pm
Π.χ αν είναι 14/12/80

14 για 6sec
__ για 3sec
12 για 6sec
__ για 3sec
80 για 6sec
__ για 3sec

όπου __ κενό διάστημα.

Αυτό κατάλαβα εγώ...

αυτό πως το κάνουμε; να εμφανίζεται ο χαρακτήρας 6 sec;

Κάποιος?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 10, 2009, 00:01:20 am
βαζεις το PORTB να δειχνει την τιμη που θες..
αμεσως μετα βαζεις να μερτησεις το delay για 6sec...
σβηνεις το PORTB...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on December 10, 2009, 00:16:25 am

gemizeis tous registers toso oso otan tous miwneis kata ena, mesa se ka8e loupa, otan 8a  ftasoun 0 na sou exoun dwsei 20ms delay dld ta 31 kai 255 mas boleuoun san ari8moi, got it?

thanks man!


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Social_waste on December 16, 2009, 02:33:18 am
?

Για δημιουργία βρόχου καθυστερήσεων, χρησιμοποίησε αυτό το θαυματουργό προγραμματάκι:
http://www.electronics-lab.com/downloads/mcu/003/index.html

αυτό δουλεύει;
γιατί κάνω ένα delay αλλά κολλάει στο πρώτο wgloop2

Code:

; =============================
;    delay loop generator
;     12000000 cycles:
; -----------------------------
; delaying 11999976 cycles:
          ldi  R20, $3E
WGLOOP0:  ldi  R21, $FD
WGLOOP1:  ldi  R22, $FE
WGLOOP2:  dec  R22
          brne WGLOOP2
          dec  R21
          brne WGLOOP1
          dec  R20
          brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
          ldi  R20, $08
WGLOOP3:  dec  R20
          brne WGLOOP3
; =============================
brikame telika giati???


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Kargas on December 16, 2009, 02:40:55 am
?

Για δημιουργία βρόχου καθυστερήσεων, χρησιμοποίησε αυτό το θαυματουργό προγραμματάκι:
http://www.electronics-lab.com/downloads/mcu/003/index.html

αυτό δουλεύει;
γιατί κάνω ένα delay αλλά κολλάει στο πρώτο wgloop2

Code:

; =============================
;    delay loop generator
;     12000000 cycles:
; -----------------------------
; delaying 11999976 cycles:
          ldi  R20, $3E
WGLOOP0:  ldi  R21, $FD
WGLOOP1:  ldi  R22, $FE
WGLOOP2:  dec  R22
          brne WGLOOP2
          dec  R21
          brne WGLOOP1
          dec  R20
          brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
          ldi  R20, $08
WGLOOP3:  dec  R20
          brne WGLOOP3
; =============================
brikame telika giati???

φιλε μου και μενα το ιδιο, δοκιμασα και με αυτο τον τροπο και με τον τροπο του Book και στα 2 κολαει, νομιζω κατι παιζει γενικα με τον Program counter ... αλλα δεν μπορω να καταλαβω... (mporei na lew kai mlkies den 3erw :P )


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Issle on December 16, 2009, 12:58:12 pm
Code:
;Six second delay as calculated for a 4 mhz processor.
delay6sec:
ldi Counter1, delay6loop1max
ldi Counter2, delay6loop2max
ldi Counter3, delay6loop3max
rjmp delay6loop3

delay6loop3:
dec Counter3
brne delay6loop3
rjmp delay6loop2

delay6loop2:
ldi Counter3, delay6loop3max
dec Counter2
brne delay6loop3
rjmp delay6loop1

delay6loop1:
ldi Counter2, delay6loop2max
dec Counter1
brne delay6loop2
ret

Εγώ πιστεύω πως καλύτερα είναι τα τρία loop να είναι ξεχωριστά, modular. Και το ένα να κάνει branch στο άλλο.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on December 16, 2009, 23:24:20 pm
Συνεχίζει να μην παίζει... το λοοπ. το έκανα και με τον τρόπο του βιβλίου αλλά πάπαλα.


Παίζει σε εσάς;


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Kargas on December 16, 2009, 23:44:26 pm
kai mena ta idia sunexizei na mhn paizei

anonyme mhn fovase 8a sou e3igisoun sto ergastirio!!! hahahhahahahhahaha


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 00:31:47 am
Ρε παιδιά έκανε κανένας τίποτα με αυτό το κωλόdelay?
Έστω αυτοί που πήγαν σήμερα και χθες αν ξέρουν κάτι...(ή αν κατάλαβαν...)
Πως κάνω delay για 3 δευτερόλεπτα και πως για 6?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: λήθη on December 18, 2009, 00:40:50 am
des to biblio more


to kanei gia 20ms ekei, me duo metrites

esy 9a to kaneis me 3
giati o ka9e kataxoritis einai oxtabitos kai metraei mexri to 255

9a deis oti o avr trexei sta 4mhz
upologise to sunolo kuklon mixanis pou apaitoun oi entoles pou exei mesa
etsi 9a breis apo poio ari9mo kai meta 9a prepei na afairountai oi metrites
gia na exeis to analogo delay


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 00:45:43 am
des to biblio more


to kanei gia 20ms ekei, me duo metrites

esy 9a to kaneis me 3
giati o ka9e kataxoritis einai oxtabitos kai metraei mexri to 255

9a deis oti o avr trexei sta 4mhz
upologise to sunolo kuklon mixanis pou apaitoun oi entoles pou exei mesa
etsi 9a breis apo poio ari9mo kai meta 9a prepei na afairountai oi metrites
gia na exeis to analogo delay
Το οτι το έχει στο βιβλίο το ξέρω...
Απλά δεν μπορώ να αντιληφθώ πως ακριβώς γίνεται αυτό που λες...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 00:47:37 am
; =============================
;       DELAY of 3 seconds
; -----------------------------
; delaying 11999976 cycles:
; =============================

; =============================
;        DELAY of 6 seconds
; -----------------------------
; delaying 23999952 cycles:
; =============================


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Kargas on December 18, 2009, 00:50:00 am
o h ka8e entoli pou bazeis px nop pou exei sto book kanei kapoio xrono na ektelestei apo ton epe3ergasti sou. to nop kanei 1 kuklo mixanhs

esu pou trexeis sta 4MHz exeis xrono 1/4000000 ara 0,25 usec kuklo mixanis! ara bazeis ekei loopes emfolevmenes etsi oste otan 8a exoun teliwsei oles oi loopes 8a exei ka8isterisei 3 h' 6 sec xwris na kanei tpt to programa sou!

got it?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 00:52:16 am
o h ka8e entoli pou bazeis px nop pou exei sto book kanei kapoio xrono na ektelestei apo ton epe3ergasti sou. to nop kanei 1 kuklo mixanhs

esu pou trexeis sta 4MHz exeis xrono 1/4000000 ara 0,25 usec kuklo mixanis! ara bazeis ekei loopes emfolevmenes etsi oste otan 8a exoun teliwsei oles oi loopes 8a exei ka8isterisei 3 h' 6 sec xwris na kanei tpt to programa sou!

got it?

Got it m8. Thank you.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 01:07:27 am
FATAL ERROR: Cannot open output file C:\Documents and Settings\+¿þ?-ºßþÜ ß±ÞÜ?-Ü?\AVR\delay3sec\delay3sec.hex: Invalid argument

Τι @#%@#$ φταίει...? Καινούριο τούτο παλι... Γίνεται όταν πάω να κάνω build...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: OtiNaNAi on December 18, 2009, 01:13:04 am
μηπως εχεις ελληνικα πουθενα στο directory?? κ δεν τα αναγνωριζει?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on December 18, 2009, 01:14:15 am
FATAL ERROR: Cannot open output file C:\Documents and Settings\+¿þ?-ºßþÜ ß±ÞÜ?-Ü?\AVR\delay3sec\delay3sec.hex: Invalid argument

Τι @#%@#$ φταίει...? Καινούριο τούτο παλι... Γίνεται όταν πάω να κάνω build...


Βάλε το φάκελο σε path χωρίς κενά ή ελληνικούς χαρακτήρες, πχ C:\testcases

Κι εγώ τα (γ)ίδια έπαθα πριν λίγες ώρες. :P


Ο assembler του studio btw δεν είναι διπλού περάσματος; Γιατί όποτε πάω να καλέσω μια ρουτίνα μου λέει "undefined symbol", κι ας το 'χω ορίσει...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 01:16:33 am
μηπως εχεις ελληνικα πουθενα στο directory?? κ δεν τα αναγνωριζει?
Το έβαλα στο C:\AVR και τώρα δουλέυει οκ...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on December 18, 2009, 02:12:26 am
αυτό δουλεύει;
γιατί κάνω ένα delay αλλά κολλάει στο πρώτο wgloop2

Code:

; =============================
;    delay loop generator
;     12000000 cycles:
; -----------------------------
; delaying 11999976 cycles:
          ldi  R20, $3E
WGLOOP0:  ldi  R21, $FD
WGLOOP1:  ldi  R22, $FE
WGLOOP2:  dec  R22
          brne WGLOOP2
          dec  R21
          brne WGLOOP1
          dec  R20
          brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
          ldi  R20, $08
WGLOOP3:  dec  R20
          brne WGLOOP3
; =============================


Λαζ, δουλεύει, με την έννοια του ότι δεν κολλάει σε κάποιο loop. Το ότι τη βλέπουμε να κρατά ΠΟΛΥ περισσότερο (πιο αργή κι απ' τη Java :P) πρέπει να 'ναι πρόβλημα του AVR studio, δηλαδή δεν μπορεί να εκτελέσει την κάθε εντολή σε σε 0.25μsec όταν το 'χεις στο debug mode... δεν εξηγείται αλλιώς. Πειράζοντας λίγο τα registers όσο τρέχει πράγματι τερματίζει κάποια στιγμή. Μάλλον αν το βάλεις αυτό στο STK και πατήσεις το "run" θα δουλέψει.

Το να δεις την πρόοδό του in real-time στο debug mode νομίζω ότι δεν παίζει.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Καμένος on December 18, 2009, 10:37:39 am
Προφανώς και δε μπορείς να το τρέξεις real time στο simulator..


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 18, 2009, 13:18:29 pm
Προφανώς και δε μπορείς να το τρέξεις real time στο simulator..
Επειδή δεν έχω πλακέτα STK500 σπίτι, μπορώ κάποια στιγμή εκτός ώρας εργαστηρίου να έρθω στο εργαστήριο και να δοκιμάσω ξανά το πρόγραμμα μου? Είναι εφικτό ή όχι?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 18, 2009, 18:46:40 pm
Προφανώς και δε μπορείς να το τρέξεις real time στο simulator..
mporeis omws an 9es na alla3eis opoia stigmi 9es ta bits apo to pind opote an to tre2eis se autostep mode mporeis na exeis mia near to real time anaparastasi! :)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on December 19, 2009, 17:49:52 pm
Για δημιουργία βρόχου καθυστερήσεων, χρησιμοποίησε αυτό το θαυματουργό προγραμματάκι:
http://www.electronics-lab.com/downloads/mcu/003/index.html

Tested χθες σε STK500 and working. ;)


Τελικά το auto-step του AVR studio είναι που τον παίρνει. :P :P
Οπότε μην πάτε να βγάλετε άκρη στο AVR studio τι παίζει με τις καθυστερήσεις, θα το δείτε μια και καλή στις πλακέτες σας.



Πολλά thanks@mysterious για το θεϊκό link.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on December 29, 2009, 13:56:19 pm
Γιατι δεν μας ανακοινώνεται και η 2η εργασία τώρα που έχουμε και περισσότερο χρόνο να ασχολήθουμε?
Τελευταίες εβδομάδες θα καιγομάστε πάλι...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on December 29, 2009, 14:34:55 pm
mail


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Kargas on January 03, 2010, 19:48:39 pm
@@ akoma na anevei, wtf?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 03, 2010, 20:25:35 pm
Ας στείλει κάποιος mail...


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: λήθη on January 04, 2010, 00:17:49 am
giati de stelneis esu? :)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 04, 2010, 04:46:25 am
den 3erw pws ma steilw meil


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Θάνος on January 05, 2010, 01:49:54 am
8 του μηνός δεν θα γίνει εργαστήριο γι αυτούς που έχουν παρασκευές?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 05, 2010, 02:19:01 am
8 του μηνός δεν θα γίνει εργαστήριο γι αυτούς που έχουν παρασκευές?

15 είναι προγραμματισμένο..

Το επόμενο θα είναι 22.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 06, 2010, 15:55:10 pm
ανεβηκαν οι επομενες εργασιες..



τελικα το προγραμμα πως διαμορφωνεται?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: TeeKay on January 06, 2010, 19:35:24 pm
τελικα το προγραμμα πως διαμορφωνεται?
Λογικά από τεταρτη 13/01 θα γίνει το δευτερο εργαστηριο, και μετα την επομενη το τελευταιο. εκτος κι αν βγει κι αλλη ανακοινωση...  :???:


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 06, 2010, 19:45:32 pm
nai alla einai 4 omades.. :-\


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 06, 2010, 22:39:31 pm
nai alla einai 4 omades.. :-\
so what?
Έτσι και αλλιώς από ότι θυμάμαι την Παρασκευή έχει Πρωί και απογευμα εργαστήρια για τις ομάδες 3 και 4 αντίστοιχα.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Gregos on January 09, 2010, 20:40:18 pm
Στη 2η εργασία, στο 1ο της θέμα, τι σημαίνει "ο αριθμός εμφάνισής του";
Εννοεί πόσο απέχει από το πρώτο γράμμα;


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 10, 2010, 00:00:10 am
νομιζω η συχνοτητα εμφανισης στην ακολουθια..

δν ξερω ομως σιγουρα


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: TeeKay on January 10, 2010, 00:04:33 am
νομιζω η συχνοτητα εμφανισης στην ακολουθια..

δν ξερω ομως σιγουρα
νομιζω η συχνοτητα εμφανισης στην ακολουθια..

δν ξερω ομως σιγουρα
Ναι, κι εγω αυτο καταλαβαινω, δηλαδη το ποσο συχνα εμφνίζεται στην ακολουθία ο χαρακτήρας.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cristina89 on January 11, 2010, 02:07:21 am
Πως αντιμετωπίζετε το πρόβλημα έλλειψης χώρου για όνομα και επίθετο 2 ατόμων?
Ελέγχετε κάθε φορά ένα όνομα μόνο? Και μετά περνάτε από πάνω το επόμενο?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 11, 2010, 03:33:03 am
αν κανεις την κωδικοποιηση σε ascii εχεις αρκετο χωρο στην program memory και για τα δυο ονοματα.
αν ακομα πιστευεις πως εχεις προβλημα αλλαξε το target device με ενα με καλυτερα χαρακτηριστικα πχ mega16 που υπαρχει στο εργαστηριο σε καποια boards.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cristina89 on January 11, 2010, 03:40:20 am
 :-[
εγω προς το παρον σκεφτομουν να τα περασω καθε χαρακτηρα διαδοχικα στους διαθεσιμους καταχωρητες και γι αυτο υπεθετα οτι δεν φτανει ο χωρος...
στο program memory που αναφερεις με ποιες εντολες περνας τους ascii χαρακτηρες και γενικα τα περιεχομενα οποιουδηποτε καταχωρητη?

thank you για τη βοηθεια!


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 11, 2010, 03:53:21 am
Γιατί δεν δοκιμάζετε αποθήκευση στην SRAM; :)
(Αν κατάλαβα καλά απ' αυτά που λέτε, δεν έχω εκφωνήσεις μπροστά μου)

Μια χαρά χώρο έχει...



Εκτός αν το απαγορεύει η άσκηση, οπότε πάσο. :P


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 11, 2010, 04:02:23 am
:-[
εγω προς το παρον σκεφτομουν να τα περασω καθε χαρακτηρα διαδοχικα στους διαθεσιμους καταχωρητες και γι αυτο υπεθετα οτι δεν φτανει ο χωρος...
στο program memory που αναφερεις με ποιες εντολες περνας τους ascii χαρακτηρες και γενικα τα περιεχομενα οποιουδηποτε καταχωρητη?

thank you για τη βοηθεια!
κανεις οτι εκανες και για την 1η εργασια..τα βαζεις με .db ή με .dw και διαβαζεις με lpm


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: vag on January 12, 2010, 01:30:15 am
ερωτησις

γιατι οταν φορτωνω μεσω του .db μεγαλο αριθμο στοιχειων φαινεται να επηρρεαζονται οι τιμες καποιων συγκεκριμενων registers?
κανω κατι λαθος η ετσι θα επρεπε να δουλευει?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 12, 2010, 01:36:16 am
αν κανεις .db σκετα θα παει να γραψει οπου ναναι και μπορει και πανω και στο προγραμμα σου

ορισε διαφορετικες θεσεις εγγραφης στην μνημη προγραμματος με την ψ-εντολη .org , πχ το προγραμμασου να ξεκιναει απο τη θεση $ΑΑ και οι μεταβλητες σου να ξεκινανε απο τη θεση $CC( δεδομενου πως το προγραμμα δεν φτανει μεχρι τη θεση $CC)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: vag on January 12, 2010, 01:55:32 am
poly kalos


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: alko on January 12, 2010, 14:03:23 pm
αν κανεις .db σκετα θα παει να γραψει οπου ναναι και μπορει και πανω και στο προγραμμα σου

ορισε διαφορετικες θεσεις εγγραφης στην μνημη προγραμματος με την ψ-εντολη .org , πχ το προγραμμασου να ξεκιναει απο τη θεση $ΑΑ και οι μεταβλητες σου να ξεκινανε απο τη θεση $CC( δεδομενου πως το προγραμμα δεν φτανει μεχρι τη θεση $CC)
Πως γινεται αυτο?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: portinos on January 12, 2010, 23:13:23 pm
Πως μπορούμε να βρούμε ποιο γράμμα αντιστοιχεί στον μεγαλύτερο ascii κωδικό; Υπάρχει κάποια συγκεκριμένη εντολή, γιατί όσο και αν διαβάζω στο manual δε μπορώ να καταλάβω κάτι τέτοιο


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: kon_v on January 13, 2010, 01:02:02 am
και εγώ το ίδο θέμα έχω...σκέφτηκα κάτι με ολίσθηση και έλεχο κάθε ψηφίου αλλά δεν πρέπει αν στέκει...κανεις καμιά βοήθεια??????


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 13, 2010, 01:13:07 am
αν κανεις .db σκετα θα παει να γραψει οπου ναναι και μπορει και πανω και στο προγραμμα σου

ορισε διαφορετικες θεσεις εγγραφης στην μνημη προγραμματος με την ψ-εντολη .org , πχ το προγραμμασου να ξεκιναει απο τη θεση $ΑΑ και οι μεταβλητες σου να ξεκινανε απο τη θεση $CC( δεδομενου πως το προγραμμα δεν φτανει μεχρι τη θεση $CC)
Πως γινεται αυτο?

Ένας απλός τρόπος είναι να βάλεις τις "σταθερές" που θες να αποθηκεύσεις αμέσως κάτω από τα διανύσματα διακοπών (interrupt vectors). Εκεί πέρα το πρόγραμμα δεν θα πάει ποτέ, λόγω του reset-vector (στη διεύθυνση $0000 βάζεις rjmp/jmp main).


ΠουΧου:

Code:
.cseg
.org 0x0000
    jmp main
// περιοχή για interrupt vectors

.......

//αποθηκευμένες σταθερές
.DB
table: 1,2,4,8,16,32,64,128,256,512,1024,2048

main:
// blah blah blah

ΠΡΟΣΟΧΗ στο ότι σε περίπτωση που έχεις AVR όπου οι διευθύνσεις στην μνήμη προγράμματος οργανόνονται ανά 2 bytes, όπως ο ATmega16, θα πρέπει σε κάθε ".DB" να βάζεις άρτιο αριθμό στοιχείων. Αν δεν βάλεις, απλώς ο assembler θα padάρει στο τέλος το $00, κάτι που μπορείς να το κάνεις κι εσύ manually για να μη σου πετά warnings.

Αυτά για τις σταθερές σου... Αν θες να δεσμεύσεις θέσεις μνήμης για μεταβλητές που ΑΛΛΑΖΟΥΝ, πιστεύω ότι είναι καλύτερο να χρησιμοποιήσεις την SRAM (το .dseg). Όχι πως δεν μπορείς και στη flash του προγράμματος, αλλά γι' αυτό το λόγο υπάρχει η SRAM. :)


Πως μπορούμε να βρούμε ποιο γράμμα αντιστοιχεί στον μεγαλύτερο ascii κωδικό; Υπάρχει κάποια συγκεκριμένη εντολή, γιατί όσο και αν διαβάζω στο manual δε μπορώ να καταλάβω κάτι τέτοιο

Βασικά ο μεγαλύτερος ascii κωδικός δεν αντιστοιχεί σε printable χαρακτήρα, αλλά στο DEL(ete). :P
http://en.wikipedia.org/wiki/ASCII

Then again παίζει να μην κατάλαβα τι θες να κάνεις (εκφώνηση δεν έχω, e-thmmy δε παίζει :P)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Social_waste on January 13, 2010, 01:13:38 am
genika exei entoles.
cp kai oi paromoies.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 13, 2010, 01:22:58 am
τι ενοειτε ρε παιδια?

καθε χαρακτηρας κωδικοποιειται σε ascii αρα πχ το a->61, b->62 κτλ αρα το ονομα σου γινεται μια σειρα απο αριθμους και εσυ ψαχνεις να βρεις τον μεγαλυτερο..

ποιο ειναι το προβλημα?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: elen :) on January 13, 2010, 20:09:56 pm
+1 για τον προηγούμενο.
Καμιά ιδέα για το πώς θα κρατάει όλες τις σχετικές θέσεις που είναι αποθηκευμένο το μέγιστο?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 13, 2010, 21:25:14 pm
Δεν νομίζω να χρειάζεται να συγκρίνεις τους Χαρακτήρες μεταξύ τους.
Ρώτησα σήμερα στο εργαστήριο και απλά μου είπε να βρώ μόνος μου τον χαρακτήρα με το μεγαλύτερο ASCII Code και απλά να το εμφανίζω σε ποια θέση είναι και πόσες φορές εμφανίζεται.
Το ερώτημα μου είναι...αφού έχει 8 ledακια η STK500 αν το γράμμα είναι π.χ στην θέση 17 θα θεωρήσω (8+8+1=17) ότι θα ανάψει το πρώτο led? Πώς γίνεται αυτό?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on January 13, 2010, 21:31:43 pm
όταν λες μόνος σου; να μην το βρίσκει το πρόγραμμα; :S


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 13, 2010, 21:50:04 pm
Δεν νομίζω να χρειάζεται να συγκρίνεις τους Χαρακτήρες μεταξύ τους.
Ρώτησα σήμερα στο εργαστήριο και απλά μου είπε να βρώ μόνος μου τον χαρακτήρα με το μεγαλύτερο ASCII Code και απλά να το εμφανίζω σε ποια θέση είναι και πόσες φορές εμφανίζεται.
Το ερώτημα μου είναι...αφού έχει 8 ledακια η STK500 αν το γράμμα είναι π.χ στην θέση 17 θα θεωρήσω (8+8+1=17) ότι θα ανάψει το πρώτο led? Πώς γίνεται αυτό?
τον χαρακτηρα δεν πρεπει να τον ξερεις και απλα να τον εκτυπωσεις, αλλα να τον βρεις συγκρινοντας ενα-ενα τα  νουμερα και μετα να το εκτυπωσεις..τωρα αν η θεση ειναι 17 το εκτυπωνεις σε binary οποτε τα 8 led σου αρκουν για μεχρι τον αριθμο 2^8=256 αρα εκτος απο την περιπτωση να εχει το ονομασου πανω απο 256 χαρακτησρες, εισαι ενταξυ! ;)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 14, 2010, 00:11:20 am
:) Ε ΟΧΙ ΔΑ! Δεν έχω τέτοιο όνομα... :)

Πως ακριβώς όμως θα κάνω το compare?
Τι θα το βάλω να συγκρίνει...

Εστω το ονομα John το οποιο το έχω εισάγει με .db. Afterwards?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 14, 2010, 00:16:06 am
Πως ακριβώς όμως θα κάνω το compare?
Τι θα το βάλω να συγκρίνει...

Εστω το ονομα John το οποιο το έχω εισάγει με .db. Afterwards?

Σε C κάτι τέτοιο δεν θα 'γραφες; :)

Code:
max = table[0];
for(i=0; table[i] != '\0' ; i++)
    if ( table[i] > max )
        max = table[i];

Αυτό σε assembly... φορτώνεις, συγκρίνεις, ενημερώνεις. :P

Εν τέλει θα δεις ότι η C και η assembly έχουν λίγες διαφορές... Πρακτικά η C είναι μία "universal assembly language". :P


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: st0up on January 14, 2010, 00:24:48 am
Εγω παλι εχω απορια στο πως θα κραταει τη σχετικη θεση μνημης του χαρακτηρα, σε περιπτωση που αυτος εμφανιζεται πανω απο 1 φορα!! Στη δικη μου περιπτωση εμφανιζεται 2 φορες αλλα υποτιθεται οτι δεν το ξερω αυτο απο πριν για να χρησιμοποιησω και 2 καταχωρητες... αρα?


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: cyb3rb0ss on January 14, 2010, 00:26:12 am
Πως ακριβώς όμως θα κάνω το compare?
Τι θα το βάλω να συγκρίνει...

Εστω το ονομα John το οποιο το έχω εισάγει με .db. Afterwards?

Σε C κάτι τέτοιο δεν θα 'γραφες; :)

Code:
max = table[0];
for(i=0; table[i] != '\0' ; i++)
    if ( table[i] > max )
        max = table[i];

Αυτό σε assembly... φορτώνεις, συγκρίνεις, ενημερώνεις. :P

Εν τέλει θα δεις ότι η C και η assembly έχουν λίγες διαφορές... Πρακτικά η C είναι μία "universal assembly language". :P

Ναι είναι που λατρεύω την C... Γι' αυτό τα πάω καλά και με το μάθημα αυτό... :-\ :'(


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 14, 2010, 00:27:00 am
Εγω παλι εχω απορια στο πως θα κραταει τη σχετικη θεση μνημης του χαρακτηρα, σε περιπτωση που αυτος εμφανιζεται πανω απο 1 φορα!! Στη δικη μου περιπτωση εμφανιζεται 2 φορες αλλα υποτιθεται οτι δεν το ξερω αυτο απο πριν για να χρησιμοποιησω και 2 καταχωρητες... αρα?

Μπορείς να τις αποθηκεύσεις στην SRAM, είτε μέσω έμμεσης διευθυνσιοδότησης, δηλαδή με εντολή τύπου "st X,reg", είτε στο stack (κι αυτό στην SRAM το αποθηκεύει εν τέλει). Επιλογές υπάρχουν πολλές... :)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: st0up on January 14, 2010, 00:34:49 am
στοιβα σκεφτηκα κ εγω αλλα ειχα την εντυπωση οτι δεν μπορει να γινει ετσι! Οποτε αποθηκευοντας τις θεσεις με st ας πουμε, τις βγαζω μετα με την "αναποδη" σειρα. Εκτος αν απο την αρχη σαρωνω τα ονοματα αναποδα... (βλακειες λεω?) :???:


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 14, 2010, 00:42:29 am
στοιβα σκεφτηκα κ εγω αλλα ειχα την εντυπωση οτι δεν μπορει να γινει ετσι! Οποτε αποθηκευοντας τις θεσεις με st ας πουμε, τις βγαζω μετα με την "αναποδη" σειρα. Εκτος αν απο την αρχη σαρωνω τα ονοματα αναποδα... (βλακειες λεω?) :???:
Βασικά όταν αποθηκεύεις στην SRAM μέσω του "st", ουσιαστικά κάνεις αυτό:

Η εντολή αυτή:
Code:
st X,reg

Ισοδυναμεί με αυτήν στην C:
Code:
*X = reg;

Δεν είναι "στοίβα". Απλά αποθηκεύεις κάτι σε μια θέση μνήμης μέσω ενός pointer.
Έπειτα, άμα ξέρεις την "αρχή" απ' όπου ξεκίνησες την αποθήκευση των γραμμάτων, επανατοποθετείς τον X στην αρχική σου διεύθυνση και τα διαβάζεις με τη σειρά που τα αποθήκευσες. Όπως έκανες στον δομημένο περίπου. :)

Στη στοίβα είναι που τα παίρνεις με την ανάποδη σειρά. Η μόνη διαφορά είναι ότι η στοίβα βρίσκεται συνήθως στο ΤΕΛΟΣ της SRAM, ενώ με τις st-ld μπορείς να γράψεις/διαβάσεις απ' όποιο σημείο της SRAM θες εσύ και με όποιον τρόπο θες εσύ.


Και ναι, φυσικά και γίνεται αυτό που λες, να αποθηκεύεις τις διευθύνσεις στο stack.
Απλώς πρόσεξε ότι θα πρέπει να αποθηκεύεις και τα 2 bytes, αν έχεις 16-bitες διευθύνσεις.


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: st0up on January 14, 2010, 00:45:17 am
Ααααααα!!!! Ποσο σε ευχαριστω να ηξερες!!! (Ειναι που κι εγω κατεχω τη C)  :P


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Liverpoylian on January 19, 2010, 22:41:29 pm
names:

.db"giorgosklikklikos"

.db"giannisklikklikos"

ldi ZH, high(2*names) 
ldi ZL, low(2*names)

και έχεις στη μνήμη προγράμματος τα δύο ονόματα. Μετά θέτεις το πρώτο σαν το μεγαλύτερο και κάνεις διαδοχικά sub με τις αντίστοιχες διακλαδώσεις


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on January 20, 2010, 02:10:32 am
Στην άσκηση 3 εκεί που λέει για το φωτοκύτταρο:

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


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 20, 2010, 11:00:22 am
Στην άσκηση 3 εκεί που λέει για το φωτοκύτταρο:

η λειτουργια απαρίθμησης των αντικειμένων αρχίζει με το πάτημα του διακόπτη του φωτοκύτταρου;
nai koumpi kai inc


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: elen :) on January 20, 2010, 21:43:05 pm
Και όταν λες inc πως ακριβως θα μετραει δηλαδη θα καταλαβαινει οτι περασε το ενα αντικειμενο για να αυξησει το μετρητη??


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: TeeKay on January 20, 2010, 22:25:22 pm
Όταν πατάς τον πλήκτρο του φωτοκυττάρου, τότε θα αυξάνεται κατα ένα με την εντολη inc ένας μετρητης, που θα τον χρησιμοποιείς για να μετρας ποσα αντικειμενα εχουν περασει.  ;)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on January 21, 2010, 00:52:53 am
Υπάρχει τρόπος να προσομοιώσουμε τους διακόπτες στο AVR studio;

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


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Social_waste on January 21, 2010, 00:59:47 am
στο avr studio που σου βγαζει τα ports στα πλαγια
μπορεις να τα αλλαξεις πειραζοντας το pind καθως το τρεχεις.



Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: anonymous-root on January 21, 2010, 01:35:01 am
ναι το έχω δει αυτό, αλλά δε φαίνεται να το παίρνει υπόψη...

μια άλλη απορία σχετικά με τα LED

όταν κάνω ldi temp,0b0000000

τα led πως αντιστοιχούν μετά το 0b;


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: Γιώργος on January 21, 2010, 03:06:03 am
ναι το έχω δει αυτό, αλλά δε φαίνεται να το παίρνει υπόψη...

Τα παίρνει υπόψην μια χαρά... Το PIND πειράζεις, έτσι; (ή το αντίστοιχο PINx, όπου x = input port)


μια άλλη απορία σχετικά με τα LED

όταν κάνω ldi temp,0b0000000

τα led πως αντιστοιχούν μετά το 0b;

Κατ' αρχάς πιο απλό είναι το clr temp :P

Στην STK500 αυτό αντιστοιχεί σε όλα τα LEDs -> ON, λόγω αρνητικής λογικής (0 -> ON, 1 -> OFF)


Title: Re: [Συστήματα Μικροϋπολογιστών] - Εργασίες 2009-2010
Post by: edenaxas on January 21, 2010, 14:37:59 pm
ναι το έχω δει αυτό, αλλά δε φαίνεται να το παίρνει υπόψη...

μια άλλη απορία σχετικά με τα LED

όταν κάνω ldi temp,0b0000000

τα led πως αντιστοιχούν μετά το 0b;
0b-MSB[..]LSB