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

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

  1. #41
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Αν γράψεις σε asm να δεις διαφορά, βλέπεις πρόγραμμα 1kb και σου φαίνεται βουνό! Τότε καταλαβαίνεις πολλά πράγματα της C.
    Και οι μΕ προς τον ίδιο δρόμο βαδίζουν, όπως από assembly πήγαμε σε C για ευκολία και ταχύτητα έτσι και τώρα πάνε σε RTOS.
    Το κακό με το arduino είναι πως έχουν αρχίσει να θεωρούν τις αναπτυξιακές ως κομμάτι που μπορεί να μπεί σε εφαρμογή. Αν δείτε σε σελίδες με freelancer κάνουν όλη την δουλειά σε arduino και μετά ζητάνε να τους τα μετατρέψει κάποιος σε καθαρή C και να τους σχεδιάσει πλακέτα με καθαρό avr. Στο μέλλον που όλοι θα αγοράζουν με 5$ arduina με bga το να γνωρίζεις το hardware και να μπορείς να το σχεδιάζεις θα είναι μεγάλο προσόν! Δεν είναι πολύ μακριά, ήδη raspberry, beaglebone είναι μπροστά μας.
    Και στην σχολή μου ήδη βλέπω άτομα που επενδύουν χρόνο μαθαίνοντας beaglebone και πιστεύουν ότι μαθαίνουν arm. Σαν να λες "ξέρω arduino άρα ξέρω avr"...
    Μπράβο σου που το παλεύεις με C και όχι με wiring!

    *Άμα οι avr "πιάσανε" τότε γιατί η Microchip αγόρασε την Atmel? :P

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Οι AVR και καλά πιάσανε οταν οι arduinoi διάλεξαν AVR και οχι PIC. Αν ρωτήσεις έξω πολλοί δεν ξέρουν τι mcu φοράει το board. Πάντως το να μάθεις έναν mcu σε κάνει να μάθεις αρχιτεκτονική, τεχνικές προγραματισμού, βελτιστοποίηση, αναλογικά, ψηφιακά ......

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    καλά εσείς το πήγατε πολύυυυ μπροστά...
    υπάρχει κόσμος που κάνει μια χαρά την δουλειά του με τις ευκολίες που προσφέρει η arduino-γλωσσα αλλά και η υλοποίηση του arduino (κατευθείαν USB σύνδεση χωρίς programmers ή άλλα εξωτικά για τον καθημερινό χρήστη υλικά).

    Αυτοί λοιπόν οι χρήστες, έμειναν στο arduino λόγω ακριβώς αυτής της ευκολίας της γλώσσας. Επειδή δεν τους τρόμαξαν με register, με bits, με fuses κ.ο.κ. Πολύ πιθανό αν είχαν δει την πολυπλοκότητα που υπάρχει κάτω απο το καπό να την είχαν κάνει με ελαφρά....
    Τώρα, απο αυτούς που έμειναν, ένα ποσοστά θα αποφασίσει να το "ψάξει" παραπάνω για να κάνει μερικά πραγματάκια γρηγορότερα και καλύτερα με την απλή C του ελεγκτή. Αλλά μέχρι εκεί...
    Δεν πιστεύω κανείς απο αυτούς να πιάσει την assembly όσο καλύτερα και γρηγορότερα μπορούν να γίνουν τα πράγματα...
    Δεν θέλουμε να γίνουμε όλοι ηλεκτρονικοί με ειδικότητα στα ψηφιακά... θέλουμε να κάνουμε γρήγορα και εύκολα την δουλειά μας, το χόμπυ μας κτλ κτλ...

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

  4. #44
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Νομίζω πως ο ορθός δρόμος για να μάθει κάποιος προγραμματισμό, είναι να ακολουθήσει τη φυσική σειρά των πραγμάτων, όπως αυτή αναπτύχθηκε με τα χρόνια. Το λέω σαν προσωπική άποψη, μαθαίνοντας, γράφοντας και αναπτύσσοντας προτζεκτάκια σε assembly (όχι μόνο σε ένα brand μ/Ε), μετά σε ανώτερη γλώσσα όπως C ή Wiring. Νομίζω επίσης πως είναι αρκετά δυκολότερο (εντούτοις όχι ακατόρθωτο) να γίνει το αντίστροφο. Έπειτα, είναι και θέμα γούστου. Η όρεξη του καθενός είναι καθαρά υποκειμενικό ζήτημα.

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Μάνο εσύ δηλαδή έμαθες πρώτα assembly και μετά basic?
    Για σκέψου το...

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

  6. #46
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Όχι όχι, εγώ δεν τα είπα όπως έπρεπε. Απο assembly κατ΄ευθείαν, και πάνω. Δίκιο έχεις εσύ, η σειρά είναι όπως τα λές.

    1 Not allowed! Not allowed!

  7. Ένα μέλος ευχαρίστησε τον manolena για αυτό το χρήσιμο μήνυμα:

    SeAfasia (04-04-17)

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

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    ...Μπράβο σου που το παλεύεις με C και όχι με wiring!...
    Όπως είδες καθόλου δεν το παλεύω, στο πρώτο κομμάτι C που είδα, Googlισα κανένα τέταρτο της ώρας και μετά είπα "όχι πάλι θεέ μου, δεν χρειάζεται να μάθω τι κάνουν όλα αυτά: Ας μου πει απλός κάποιος συνάνθρωπος απλώς πως να το αλλάξω για να ξεπεράσω αυτό το κομμάτι και συνεχίζω στον εύκολο "Arduinάτο κώδικα" που ψιλό-έμαθα!". Αν και από τότε που έγραψα το τελευταίο ποστ δεν τον ξανάπιασα τον Arduino, θέλω να πιστεύω ότι δεν θα ξαναχρειαστεί να ακουμπήσω τέτοιον κώδικα.
    Πιστεύω ότι το σωστό είναι να μαθαίνεις όσα μπορείς και σίγουρα ότι μαθαίνεις δεν πάει χαμένο, αλλά τυχαίνει εγώ να μην είμαι στην φάση της ζωής μου που το να κάτσω να μάθω μία "δύσκολη" γλώσσα μου είναι ευχάριστο. Με τα Arduinάτα* δυσκολεύτηκα όπως είναι φυσικό αλλά μου άρεσε, για τον πιο "σκληροπυρηνικό" κώδικα αν και πιστεύω ότι θα μου έδινε την ίδια ικανοποίηση το να τον μάθω, απλώς δεν έχω τον χρόνο/όρεξη για να ασχοληθώ, ιδιαίτερα αν δεν είναι και κάτι που θα μου ήταν χρήσιμο επαγγελματικά (υποθέτοντας ότι δεν θα αλλάξω επάγγελμα έτσι). Ίσως πριν μία δεκαετία να ήταν αλλιώς τα πράγματα.

    Τώρα εγώ είπα απλός να παίξω λίγο με τον Arduino αφού είναι φθηνός κτλ, για το αν άλλοι ξεκινάν να φτιάξουν πχ PLC με Arduino και μετά όταν τελειώσει ο σχεδιασμός κάθονται/ζητάνε να το ουσιαστικά ξανά-φτιάξουν αλλά "πιο σωστά" τι να πω, εγώ το βλέπω διπλή δουλειά χωρίς λόγο...

    *Τελικά πως λέγεται αυτός ο κώδικας ???

    Παράθεση Αρχικό μήνυμα από pstratos Εμφάνιση μηνυμάτων
    ...Οι AVR και καλά πιάσανε οταν οι arduinoi διάλεξαν AVR και οχι PIC...
    Παράθεση Αρχικό μήνυμα από nkarama Εμφάνιση μηνυμάτων
    ...καλά εσείς το πήγατε πολύυυυ μπροστά...
    υπάρχει κόσμος που κάνει μια χαρά την δουλειά του με τις ευκολίες που προσφέρει η arduino-γλωσσα αλλά και η υλοποίηση του arduino (κατευθείαν USB σύνδεση χωρίς programmers ή άλλα εξωτικά για τον καθημερινό χρήστη υλικά).
    Αυτοί λοιπόν οι χρήστες, έμειναν στο arduino λόγω ακριβώς αυτής της ευκολίας της γλώσσας. Επειδή δεν τους τρόμαξαν με register, με bits, με fuses κ.ο.κ. Πολύ πιθανό αν είχαν δει την πολυπλοκότητα που υπάρχει κάτω απο το καπό να την είχαν κάνει με ελαφρά...
    Θυμάμαι πριν μερικά χρόνια τους PIC όπως πχ 16f84 αλλά αυτοί δεν πιάσανε. Γιατί δεν πιάσανε και τι διαφορά υπάρχει μεταξύ AVR και PIC, δεν έχω ιδέα, αλλά νομίζω ότι και αυτοί είχαν εύκολη γλώσσα στον προγραμματισμό τους.

    Πέραν όμως των χαρακτηριστικών (πόσες εισόδοι/εξόδοι, τι ταχύτητα, τι "ευκολίες" όπως PWM) αυτό που έγραψε ο nkarama είναι η αλήθεια: βλέπεις τον κώδικα του Arduino με τα "Print(x) / Write(x)" και λες θα το παλέψω όταν είσαι χομπίστας και το κάνεις για την πλάκα σου, αν πχ εγώ έβλεπα μόνο κώδικα τύπου "ADCSRA |= _BV(ADSC)" δεν θα είχα ασχοληθεί γιατί δεν μου χρειάζεται ο Arduino: θα αγόραζα ένα έτοιμο "Volt/Amp/Watt LCD Meter" και θα έκανα την δουλεία μου. Και αυτοί που θα ήθελαν/γούσταραν/έπρεπε να μάθουν να δουλεύουν τον Arduino, θα τον μάθαιναν, όπως και τώρα.

    0 Not allowed! Not allowed!

  9. #48
    Μέλος
    Εγγραφή
    Nov 2007
    Μηνύματα
    1.452

    Προεπιλογή

    Οι πιο πολλοί ασχολήθηκαν με μΕ όταν φτάσαν σε σημείο να μην τους καλύπτουν τα απλά διακριτα ψηφιακά/αναλογικά ηλεκτρονικά. Δηλ αρχικά φτιάχνεις με τρανζιστοράκια, μετά με λογικές πύλες και πάει λέγοντας. Όταν φτάσεις σε μια πλακέτα να έχεις καμιά 20 ολοκληρωμένα ο μΕ έρχεται σαν φυσική συνέχεια - και ας προγραμματίζεις assembly. Κάποια στιγμή βλέπεις οτι υπάρχει η δυνατότητα για ansi-C στον μΕ και κάνεις παπάδες. Η arduino-κατάσταση καμία σχέση με την παραπάνω καμπύλη εκμάθησης.

    0 Not allowed! Not allowed!

  10. #49
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Εγώ πιστεύω καλύτερα να ξεκινήσει κάποιος με C και να πάει παρακάτω.

    Εφόσον είχα την εμπειρία να λύσω το πρόβλημα και να σχεδιάσω το διάγραμμα ροής στο μυαλό μου, το επόμενο βήμα ήταν να έρθω κοντά στο hardware και η assembly είναι η καλύτερη επιλογή όχι όμως η μόνη. Για αυτό κάποιος μαθαίνει assembly (άντε και να στήνει inline καμιά κρίσιμη ρουτίνα). Αν κάποιος δεν έχει ιδέα από προγραμματισμό η assembly είναι η χειρότερη επιλογή γιατί μαθαίνει 2 σε 1.

    Τώρα που ξέρω το hardware μου ότι και να θέλω να κάνω θα κοιτάξω το λεξικό της C και θα βρω την σωστή λύση, αν δεν mου φτάνει η ταχύτητα του μΕ παω σε άλλον όχι σε asm.
    Δικιά μου άποψη είναι ότι όποιος θέλει να ασχοληθεί να μάθει το hardware (είτε με C, είτε με wiring, είτε με binary) για να μπορεί να κάνει ότι του κατέβει στο κεφάλι. Τα διαβάζει 1 φορά, τα μαθαίνει, τα ξέρει για πάντα.

    Άμα θες περίεργα ψάρια μαθαίνεις να ψαρεύεις, αλλιώς ότι σου δώσει έτοιμο ο ψαράς.
    Ότι δουλεύει για τον καθένα καλό είναι!

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Τα προβλήματα μου ακόμη κι όταν παλεύω μόνο 5 γραμμές κώδικα συνεχίζονται στον μαγευτικό κόσμο του Arduino:

    Προσπαθώ απλός να αντιγράψω τον κώδικα που είχα βρεί (link) για να μετράω την Vcc.
    Έχω δύο κομμάτια, το ένα που κάνει όλη την μαγεία και φυλάει το αποτέλεσμα σαν "readVcc", και το δεύτερο απλός τυπώνει το αποτέλεσμα στην LCD, τόσο απλά.
    Όταν είναι και τα δύο παρεΐτσα στο "void loop ()" δουλεύει και μου δίνει πχ "4712" στην οθόνη (εκτός του timer) αφού όμως τυπώσει μία και μόνο φορά στην αρχή "-1" (ίσα που προλαβαίνεις να το δεις με αυτές τις τιμές delay). Μετά έχω πάντα "4712", δεν αλλάζει. Δεν είναι σωστή η μέτρηση των 4712mV αλλά θα γίνει ρεγουλάρισμα του "readVcc = 1126400L / readVcc;" όταν με καλό δουλέψει ο κώδικας όμως.

    Κώδικας:
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(2, 4, 6, 7, 8, 9);
    
    void setup() 
    {  
      lcd.begin(20, 2);
    }
    
    void loop()
    {
      lcd.setCursor(0, 0);
      lcd.print(millis() / 1000);
    
       long readVcc;
       ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); 
       delay(100);
       ADCSRA |= _BV(ADSC);
       readVcc = ADCL; readVcc |= ADCH<<8; readVcc = 1126400L / readVcc;
    
       lcd.setCursor(0, 1);
       lcd.print("     ");
       lcd.setCursor(0, 1);
       lcd.print(readVcc);
       delay(100);
       }
    Όμως εγώ δεν θέλω να μετράω συνεχώς την Vcc αλλά μόνο μία φορά στην αρχή, οπότε να μετρήσει μία φορά και μετά να έχω το αποτέλεσμα στην μεταβλητή "readVcc" για να κάνω στο loop πράξεις.
    *Το ξέρω ότι μπορεί να είναι λάθος μου να πιστεύω ότι δεν θα αλλάξει η Vcc κατά την λειτουργία του κυκλώματος, αλλά αυτό είναι άλλο θέμα, ας μην ασχοληθούμε με αυτό τώρα.
    Κάνω λοιπόν copy-paste τον κώδικα στο setup καιιιιιιιι........ τζίφος. Ο 100% ίδιος κώδικας στο setup, δίνει "-1" στην LCD
    Κώδικας:
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(2, 4, 6, 7, 8, 9);
    
    void setup() 
    {  
      lcd.begin(20, 2);
    
       long readVcc;
       ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); 
       delay(100);
       ADCSRA |= _BV(ADSC);
       readVcc = ADCL; readVcc |= ADCH<<8; readVcc = 1126400L / readVcc;
    
       lcd.setCursor(0, 1);
       lcd.print("     ");
       lcd.setCursor(0, 1);
       lcd.print(readVcc);
       delay(100);
    }
    
    void loop()
    {
      lcd.setCursor(0, 0);
      lcd.print(millis() / 1000);
       }


    Αυτό το -1 στην αρχή λέω είναι, ας μεγαλώσω το delay. Αλλά ακόμα και 5000 + άλλα 5000 μετά καθυστέρηση να βάλω όπως παρακάτω, πάλι "-1" έχω...

    long readVcc;
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
    delay(5000);
    ADCSRA |= _BV(ADSC);
    readVcc = ADCL; readVcc |= ADCH<<8; readVcc = 1126400L / readVcc;
    delay(5000);

    Και τώρα το κερασάκι στην τούρτα: Αν κρατήσω το κομμάτι της μέτρησης στο setup και πάω απλός να τυπώσω την readVcc στο loop, δεν περνάει από compile, μου λέει "δεν μου δήλωσες ποτέ τι είναι αυτό το 'readVcc' που θες να τυπώσεις" !!! Πως είναι δυνατόν, αφού το "long readVcc;" δεν άλλαξε θέση! Μόνο το κομμάτι που του ζητάω να μου τυπώσει την μεταβλητή μετέφερα, και στο loop, όχι σε τίποτα functions ή κάτι περίπλοκο...

    Αυτός ο κώδικας:
    Κώδικας:
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(2, 4, 6, 7, 8, 9);
    
    void setup() 
    {  
      lcd.begin(20, 2);
    
       long readVcc;
       ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); 
       delay(100);
       ADCSRA |= _BV(ADSC);
       readVcc = ADCL; readVcc |= ADCH<<8; readVcc = 1126400L / readVcc;
    }
    
    void loop()
    {
      lcd.setCursor(0, 0);
      lcd.print(millis() / 1000);
    
       lcd.setCursor(0, 1);
       lcd.print("     ");
       lcd.setCursor(0, 1);
       lcd.print(readVcc);
       delay(100);
       }
    Βγάζει μήνυμα:
    'readVcc' was not declared in this scope
    Arduino: 1.6.5 (Windows 7), Board: "Arduino Nano, ATmega328"

    sketch_apr04b.ino: In function 'void loop()':
    sketch_apr04b:35: error: 'readVcc' was not declared in this scope
    'readVcc' was not declared in this scope

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.
    Μετά μου λέτε για C++ και Assembly...

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

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

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

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

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

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