Σελίδα 4 από 9 ΠρώτηΠρώτη ... 2 3 4 5 6 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 31 έως 40 από 81

Θέμα: Arduino:Πάλι μη-γραμμικότητα, κάνω κάτι λάθος?

  1. #31
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Εμένα δεν είναι "καλή εφαρμογή", είναι πιο κοντά στο "κάνοντας το βήμα από Lego σε Arduino"
    Θα παραγγείλω ένα τέτοιο λοιπόν και θα αρχίσω το διάβασμα για I2C επικοινωνία. Στο τέλος θα πάω και σε Mega 2560, με τόσες βιβλιοθήκες (LiquidCrystal, TimerOne και τώρα όποια είναι για I2C) δεν θα μείνει χώρος για το πρόγραμμα XD. Θα πάρω και δύο W25Q64BV Serial Flash Memory να έρχονται, αχρείαστα να είναι...

    0 Not allowed! Not allowed!

  2. #32
    Μέλος
    Εγγραφή
    Nov 2007
    Μηνύματα
    1.459

    Προεπιλογή

    Ξεκίνα λοιπόν από εδώ

    http://www.atmel.com/Images/Atmel-25..._datasheet.pdf

    και ξεζουμισε το. Καλές οι ευκολίες του arduino αλλά η καρδιά είναι ο mcu. 256K flash έχει. Τι θα φτιάξεις και φοβάσαι μην και δεν σου φτάσει? Με 16ΚΒ ήμασταν και φτιάχναμε πράμα.... εκτός αν θες να βάλεις κανα rtos ή γραφικά σε lcd

    0 Not allowed! Not allowed!

  3. #33
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Όχι, εγώ έχω τρεις Nano 5V και ένα Mini Pro 3.3V (κινέζικους) που έχουν τον ATmega328 με 32KB... Γι αυτό λέω ότι στο τέλος θα πρέπει να πάω σε 2560, γιατί δεν θα φτάσουν. Που δεν είναι τόσο ακριβός στα περίπου 7 ευρώ, αλλά τόσα ποδαράκια "χαμένα", και με τον Nano ούτε τα μισά δεν θα δουλεύω, άσε που είναι και πολύ μεγαλύτερη πλακέτα... Στο δικό μου μυαλό θα ήταν πιο σωστό να προσθέσω μνήμη αν αυτό είναι το πρόβλημα, αλλά επειδή τώρα μαθαίνω τον Arduino και μάλλον θα μου παίσουν πολλά όλα αυτά, μάλλον αν δεν μου φτάσει η μνήμη θα πάω σε 2560 από το να βάλω εξωτερική flash. Αλλά παράγγειλα τα τσιπάκια, γιατί είναι φθηνά και αν τα χρειαστώ θα πρέπει να περιμένω ένα μήνα να έρθουν και περαστικά.

    Και όλα αυτά ξεκίνησαν όταν είπα να φτιάξω αυτό για να έχω V/A/W στο τροφοδοτικό μου, αλλά τελικά δεν έβγαλα καθόλου άκρη με τον κώδικα και ξεκίνησα από το μηδέν... Με τα "read" "write" τα πάω καλά, αν είναι να ασχοληθώ με "MCUCR &= 0xEF" προτιμώ να βάλω ένα αναλογικό βολτόμετρο και τέλος. XD

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη selectronic : 03-04-17 στις 01:33

  4. #34
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Κύριοι λίγη ακόμα βοήθεια αν μπορείτε:

    Ο παρακάτω κώδικας, που βρήκα εδώ, μετράει την Vcc του Arduino χρησιμοποιώντας την εσωτερική ~1.1Vref
    Από ότι κατάλαβα χρησιμοποιεί μία από τις 8 Αναλογικές Εισόδους για να το κάνει αυτό, και αν κατάλαβα καλά, η επιλογή γίνεται στο "ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);".
    Πως μπορώ να αλλάζω την Αναλογική Είσοδο ???
    Βρίσκω παντού (πχ εδώ) ότι αυτά τα 4 "MUX" παίρνουν τιμές 0 ή 1 για να επιλέξεις Είσοδο, αλλά ούτε βλέπω κανένα 0 ή 1 στον κώδικα, ούτε 4ο MUX βλέπω (4 δεν είναι?) και τι σημαίνει το "_BV" ???

    Αν μπορεί κάποιος να μου πει τι πρέπει να γράψω για να αλλάξει από πχ Α1 σε Α2 ή Α3 θα είμουν υπόχρεος...

    Κώδικας:
       long readVcc;
       ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); 
       delay(10); // Wait for Vref to settle 
       ADCSRA |= _BV(ADSC); // Convert while (bit_is_set(ADCSRA,ADSC)); 
       readVcc = ADCL; readVcc |= ADCH<<8; readVcc = 1126400L / readVcc; // Back-calculate AVcc in mV 
    
       lcd.setCursor(0, 0);
       lcd.print(readVcc, DEC);

    0 Not allowed! Not allowed!

  5. #35
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    607

    Προεπιλογή

    Οπως βλέπεις ο κώδικας εκτελεί μια OR για να σετάρει τον καταχωρητή ADMUX.
    "ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);".

    Τα MUX είναι κάποιες έτοιμες bit-σειρές που χρησιμοποιούνται για ευκολία.
    η Παραπάνω γραμμή θα σετάρει τον register με την εξής bit-σειρά...

    010-1110
    (το - είναι το 4ο bit του register το οποίο είναι αδιάφορο...)

    Αν θες πχ τον register να σεταρειστεί με μια άλλη συμβολοσειρά πχ 010-0111 θα έγραφες το παρακάτω:

    "ADMUX = _BV(REFS0) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0);"

    Το τι ακριβώς κάνουν αυτά τα bits και ο register θα το βρεις στο datasheet του ATMEga328 .... Αλλά νομίζω και ο πίνακας το λέει καθαρά...

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  6. #36
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Ευχαριστώ πολύ

    0 Not allowed! Not allowed!

  7. #37
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    607

    Προεπιλογή

    Οσο για το _BV ψάξε στο google για _BV macro
    Μια βοήθεια είναι για να κάνει τον κώδικα ευανάγνωστο...
    Οπως επίσης και τα MUXn και τα υπόλοιπα είναι απλά defines των θέσεων των bit στους καταχωρητές. Αλλιώς θα έπρεπε να θυμάσαι τις θέσεις των bit by heart...

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  8. #38
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Γμτ είναι κάπως σαν να πρέπει να μάθω Κινέζικα για να διαβάζω μόνο ένα βιβλίο, και μετά να μην ξαναπιάσω ποτέ κάτι κινέζικο στα χέρια μου...
    Όχι ότι ότι μαθαίνεις είναι άχρηστο φυσικά, αλλά ήλπιζα να την βγάλω καθαρή με την Basic που κουτσοθυμάμαι από το σχολείο: if αυτό, then κάνε το τάδε, κτλ.
    Με τα "AnalogRead" και "lcd.print" κάτι γίνεται, αλλά να μάθω (λέω και κανένα αστείο να περάσει η ώρα) και C++ στα γεράματα, την κάτσαμε την βάρκα

    0 Not allowed! Not allowed!

  9. #39
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    607

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από selectronic Εμφάνιση μηνυμάτων
    Γμτ είναι κάπως σαν να πρέπει να μάθω Κινέζικα για να διαβάζω μόνο ένα βιβλίο, και μετά να μην ξαναπιάσω ποτέ κάτι κινέζικο στα χέρια μου...
    Όχι ότι ότι μαθαίνεις είναι άχρηστο φυσικά, αλλά ήλπιζα να την βγάλω καθαρή με την Basic που κουτσοθυμάμαι από το σχολείο: if αυτό, then κάνε το τάδε, κτλ.
    Με τα "AnalogRead" και "lcd.print" κάτι γίνεται, αλλά να μάθω (λέω και κανένα αστείο να περάσει η ώρα) και C++ στα γεράματα, την κάτσαμε την βάρκα
    Δεν μπορείς να φανταστείς πόσο πολύ βοηθάει το να μάθεις να προγραμαμτίζεις έναν AVR ή άλλον μΕ. Απλά καταλαβαίνεις σε πόσο λάθος δρόμο είναι η πληροφορική σήμερα... Το hardware έχει γίνει τόσο φθηνό που πλέον χρησιμοποιείτε για να "κρύβονται" τα προβλήματα του software. Είναι αργή η εφαρμογή? ρίχτου περισσότερες CPU. Γεμίζει η μνήμη? αύξησέ την... Κανείς δεν κοιτάει να κάνει optimize τον κώδικα πλέον. Ολοι γράφουν λες και έχουν unlimited resources και το κακό μεγαλώνει συνέχεια...
    Ενώ σε έναν 328 πρέπει να χωρέσεις το πρόγραμμά σου σε χ 32KΒ και να φροντίσεις οι μεταβλητές σου να μην ξεπεράσουν τα 2ΚΒ ή ο τρόπος που χρησιμοποιείς τα 2ΚΒ να είναι τέτοιος που να μην κατακερματίσεις την μνήμη και μετά δεν χωράει τίποτα. Και πρέπει στο τέλος και να δουλεέυει

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  10. #40
    Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    May 2011
    Περιοχή
    Πέραμα
    Μηνύματα
    3.042

    Προεπιλογή

    Θυμάμαι που διάβαζα πριν χρόνια για το ίδιο πρόβλημα στα παιχνίδια των PC, ότι οι προγραμματιστές δεν έδιναν πολύ σημασία στο να γράψουν "γρήγορο" κώδικα γιατί σου έλεγαν "ας πάρει το νέο μοντέλο που είναι 2 φορές πιο γρήγορο και θα παίξει".
    Πάντως σίγουρα είναι μεγάλο πράγμα να μπορείς να κάνεις κατασκευές μέσω μΕ και κώδικα, και ιδιαίτερα τώρα είναι η εποχή που οι Αtmel "πιάσανε" και υπάρχει κυριολεκτικά ότι module μπορείς να φανταστείς, άσε που ψωνίζουμε τώρα κατευθείαν από κίνα στο 1/10 της τιμής που θα αγοράζαμε παλιά. Αν γινόταν και να μην είχαμε χρεοκοπήσει...

    Πάντως το γράψιμο κώδικα είναι τέχνη, θυμάμαι που λέγανε ότι οι Ρώσοι στα 80s ήταν καλοί στο να γράφουν κώδικα γιατί ο χρόνος που έδιναν στον καθένα μαθητή στο ΕΝΑ mainframe που είχε το πανεπιστήμιο ήταν πολύ λίγος και έπρεπε στην ουσία να τρέξουν τον κώδικα και να κάνουν debugging στο μυαλό τους, πριν ακόμα φτάσουν να ακουμπήσουν το πληκτρολόγιο!

    0 Not allowed! Not allowed!

Σελίδα 4 από 9 ΠρώτηΠρώτη ... 2 3 4 5 6 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Εργαλείο πρεσαρίσματος UTP (Κάνω κάτι λάθος;)
    By fragment in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 43
    Τελευταίο Μήνυμα: 12-01-13, 21:53
  2. Απαντήσεις: 2
    Τελευταίο Μήνυμα: 08-04-12, 11:54
  3. Λάθος IP σε PC. Τι να κάνω;
    By Hary Dee in forum Software Η/Υ
    Απαντήσεις: 20
    Τελευταίο Μήνυμα: 08-03-11, 13:51
  4. Μετρήσεις-Κάνω κάτι λάθος
    By ba99297 in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 25-02-11, 23:00
  5. Σκέφτηκα κάτι.. Πώς θα το κάνω?
    By egmajo in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 23
    Τελευταίο Μήνυμα: 13-05-10, 20:01

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας