Port Register Control | Increase speed of Read/Write - Arduino101

Поделиться
HTML-код
  • Опубликовано: 31 окт 2020
  • $2/5pcs 2Layer & $2/5pcs 4Layer PCBs: jlcpcb.com
    🔥Another class for the Arduino 101 series. These videos will have some more difficult Arduino programming. In this video I show you how use the port register control and why is that better...
    🔀LINKS
    -------------------------------------
    Tutorial Website: electronoobs.io/tutorial/201
    Tutorial: electronoobs.com/eng_arduino_...
    ATmega328p datasheet: bit.ly/3csU1i6
    Get Arduino UNO: www.banggood.com/custlink/mvv...
    🤝SUPPORT
    -------------------------------------
    ELECTRONOOBS.io: electronoobs.io
    Help my projects on Patreon : / electronoobs
    my Q&A page: electronoobs.io/forum/index.php
    Facebook page: / electronoobs
    Canal en Español: / electronoobs en español
    Like share and subscribe to motivate me. Thank you
    #Arduino
    #tutorial
    #registers
  • НаукаНаука

Комментарии • 292

  • @mmawad100
    @mmawad100 3 года назад +169

    PLEASE CONTINUE WITH THE ADVANCED STUFF THERE IS A SERIOUS LACK ON THE INTERNET FOR THAT

    • @willtipton
      @willtipton 3 года назад +5

      I agree! 114%

    • @MrRijoAlex
      @MrRijoAlex 3 года назад +4

      Truer words have never been spoken!

    • @Danixu86
      @Danixu86 3 года назад +8

      Well there's stuff on internet, the problem is that is not well explained and this videos helps a lot.

    • @AdithyanKNair
      @AdithyanKNair Год назад +1

      still facing this problem

  • @minusharma1738
    @minusharma1738 3 года назад +47

    You are so underrated 😭

    • @sawansihag6974
      @sawansihag6974 3 года назад

      Yes, I am amazed by the amount of knowledge I got from this video

  • @DivyanshMMMUT
    @DivyanshMMMUT 3 года назад +8

    I think programming directly using Register Control is more fun as we are literally seeing what the controller is actually doing.... More like an assembly level Language 🔥.
    - Thankyou from India 🙏

  • @TimNortonGuru
    @TimNortonGuru 3 года назад +2

    I did not realise the Arduino IDE could accept direct port addressing.
    Thanks

  • @sammflynn6751
    @sammflynn6751 3 года назад +7

    Amazing, crystal clear explanation . wow, nobody explains it better than you. You deserve a million subs man.

  • @padmalayarawal3091
    @padmalayarawal3091 3 года назад +20

    This is really a great explanation as well as great presentation. Port manipulation now looks more easy to get understand. Thank you. 🤩

  • @ManojSharma-ud3ox
    @ManojSharma-ud3ox 3 года назад

    You explained it very well. I am a mechanical engineering graduate and have lots of projects which involved heavy use of electronic. This video was very clear and understand everything you said. Well done!!

  • @saram263
    @saram263 2 года назад

    The diagrams of the ports on the arduino board were so helpful and saved me from scrolling through pages of documentation as a noob, thank you!

  • @scottstevens7569
    @scottstevens7569 3 года назад

    Very Good Explanation! We really do need more of this type of thing as there is not much available, and not as easy to understand as yours is. Clear, concise and relevant.

  • @MarlinFirmware
    @MarlinFirmware 3 года назад +10

    For our project we used “FastIO” headers that define helpful macros to initialize, read, and write to the port bits using the digital PIN number, concealing all the binary math. They really speed up digital I/O, so we extended them to several platforms. For analog pin reading you can do similar tricks, by first setting up the pin for reading, then starting the ADC, and then going off to do other things and picking up the ADC result later, instead of calling analogRead() and waiting for it to return. That would make a good related subject for a future video. Cheers!

    • @richardlighthouse5328
      @richardlighthouse5328 3 года назад

      If you need performance, then write in pure c/c++.

    • @MD-vs9ff
      @MD-vs9ff Год назад

      @@richardlighthouse5328 I don't know what you mean. Arduino is a pure C++ set of libraries, with just some cosmetic things handled automatically (like function prototypes).

    • @richardlighthouse5328
      @richardlighthouse5328 Год назад

      @@MD-vs9ff I meant without any framework. Just AVR helpers.

    • @stark_energy
      @stark_energy Год назад

      @@richardlighthouse5328 What it means: using FastIO is not only having near equal the direct (without any framework) but also platform independent. The hard part is always making the code has near highest performance BUT at the same time platform agnostic (i.e. can be run on Mega, ESP32, etc without changing your code).

  • @nabilandadamslaboratory3422
    @nabilandadamslaboratory3422 3 года назад +1

    This video has finally demystified port manipulation. Thank you!!

  • @baladshin7100
    @baladshin7100 3 года назад +1

    One of the best videos I’ve ever seen on RUclips for arduino tutorial 😍 keep going bro! 💪🏻 love from IRAN 🇮🇷

  • @anonymoususer900
    @anonymoususer900 3 года назад

    Last time i honestly told you that the video(internal comparator one) wasnt very understandable for intermediate or new people. DRAMATIC IMPOROVEMENT. Awesome tutorial......i will use this in my led cube project.....Thanks!

  • @bobvanwagner6099
    @bobvanwagner6099 4 месяца назад

    i've programmed in C since Bell Labs in the late '70-s and know the concepts like this better than the back of my hand, but rarely have I seen such a clear and careful explanation. Great Job!

  • @kaden56
    @kaden56 3 года назад

    I will be a serious follower of this more advanced line of arduino info. This is the stuff that makes all my old projects finally work properly 😂

  • @soekma_aoeliea
    @soekma_aoeliea 3 года назад

    You also could use , some of its function is pretty useful

  • @hrperformance
    @hrperformance 3 года назад

    I learned so much from this video. This guy has a serious talent.
    Much love from the UK

  • @antibrevity
    @antibrevity 3 года назад +1

    This is an excellent explanation of boolean port manipulation that should be easy for newcomers to understand. Great work! I see that others have already pointed out some errors, but this is still a great video.

  • @Sekhar_Home
    @Sekhar_Home 3 года назад +1

    Finaly clearly able to know bitwise operator use in Arduino... Thanx for ur awesome graphical presentation which makes the education more fun and interactive

  • @kylemfwelch
    @kylemfwelch 3 года назад

    I never seen this so clearly explained before. Excellent!

  • @halitekmekcioglu7150
    @halitekmekcioglu7150 3 года назад +2

    very clear and well explained, I wish I could listen to this in my highschool years :) Lucky newbies

  • @saurabhgawli2167
    @saurabhgawli2167 3 года назад +2

    U deserve so much more...
    Just don't stop ur work...
    Luv from India ❤

  • @MrAasi4
    @MrAasi4 3 года назад

    This is one clearest tutorial of port manipulation. Good job!

  • @mdoering
    @mdoering 3 года назад

    The production value of your videos is next level... I LOVE the motion tracked labels. New subscriber achieved.

  • @wiktormolzahn736
    @wiktormolzahn736 3 года назад

    I love you!!!
    This ist the first Video that explanes everything nicely

  • @PdroAlfMar
    @PdroAlfMar 3 года назад

    Puro Oro!!!! Saludos y Gracias por tu aporte a esta comunidad!!!!

  • @Tuberkulo1
    @Tuberkulo1 3 года назад

    Best explanation about Port Register Control so far !

  • @alirezaahmadian4237
    @alirezaahmadian4237 2 года назад

    right now im at the midle of the video and im so excited about this great explanation that made me write this comment. its great.thats exactully what i needed.

  • @JBAntiFan
    @JBAntiFan 3 года назад +3

    Very informative, thanks for putting in the effort to edit the video. I like the inclusion of the result comparison at 6:50 and the video presentation overall looks professional, I bet new players will learn a lot from this Arduino101 series. Looking for more videos like this one to come soon, again, great job mate.

  • @SaminaZafar270
    @SaminaZafar270 3 года назад

    This is the video that I was searching for months. This video is awesome. Please make more arduino tutorials.

  • @richardsteen4340
    @richardsteen4340 4 месяца назад

    Excellent tutorial..!! Did some assembly programming years ago in college.. This has helped me to remember things I forgot I had learned..;)

  • @amarjitmoirangcha4521
    @amarjitmoirangcha4521 Год назад

    You are doing great I really like this. Such type of videos are very rare on internet which is teaching on register level for Arduino. Thanks

  • @bhargavdayal8595
    @bhargavdayal8595 2 года назад

    Bro....This is one of the best explanations i have ever listened to..Great work

  • @rikvermeer1325
    @rikvermeer1325 3 года назад

    Amazing channel. I'm from software engineering and I understand this stuff but just don't know it all works like this. Thank you for clarifying!! I became a subscriber

  • @tcrenegade
    @tcrenegade 3 года назад

    Loved this!! I felt like I was finally learning how to use arduino as a tool

  • @piiumlkj6497
    @piiumlkj6497 3 года назад +21

    This is a masterpiece , I love this kind of videos

  • @null8363
    @null8363 8 дней назад

    I found this video and channel today, this is extremely amazing, the information and the quallity are top-notch, really thank you for your hardwork

  • @ChrisLocke1969
    @ChrisLocke1969 3 года назад

    One of your best arduino code videos yet, thanks!!

  • @ELECTRONOOBS
    @ELECTRONOOBS  3 года назад +27

    ERROR: To invert a byte we use "~" and not the "!" Sowy! :)
    Arduino Course (Spanish): bit.ly/3ldW6kO
    Follow me on FACEBOOK for more: facebook.com/Electronoobs
    Help me on Patreon: www.patreon.com/ELECTRONOOBS

    • @bilelhafsi3320
      @bilelhafsi3320 3 года назад

      Thank you for the vidéo!!!
      Could you please tell me which software do you use to make video animations ?

    • @monleyson8668
      @monleyson8668 3 года назад +1

      Ok

  • @CNsongs
    @CNsongs Год назад

    Super helpful. Thank you very much. My university expected expected us to know these magically.

  • @rajneeshsingh6639
    @rajneeshsingh6639 4 месяца назад

    This is the best tutorial for port register control

  • @moinshaikh6684
    @moinshaikh6684 3 года назад

    Very Nice Explaination! Fallen in love with this tutorial!

  • @jaroslawpiotrowski210
    @jaroslawpiotrowski210 3 года назад

    Very well prepared video about advanced operations on Arduino. Very well explain - THANKS !!!
    PLEASE continue this subjects for advanced operations !!!

  • @stephanemuller7032
    @stephanemuller7032 3 года назад +6

    Great video man! Best explanation I've seen out there.
    To make your code easier to read you can also use constants like so:
    DDRB |= (1

  • @vitorlima2908
    @vitorlima2908 3 года назад

    Muito show sua apresentação.
    Curto muito o seu canal.
    Vc é sensacional.

  • @jollyjumper1873
    @jollyjumper1873 3 года назад

    Nice video! This is helping me out with my graduation project. Thanks :)

  • @TYGAMatt
    @TYGAMatt 3 года назад

    Very well explained. Wish you'd don't this video a few months ago so that I wouldn't have had to spend hours reading the datasheet and doing it myself. Excellent stuff

  • @nid274
    @nid274 3 года назад

    this is great..i never imagined there would nano to micro variation!!

  • @simplyishan06
    @simplyishan06 2 года назад

    Incredible is an understatement...

  • @webslinger2011
    @webslinger2011 3 года назад

    Wow! Thanks for a very good explanation on the Arduino ports.

  • @chefseg
    @chefseg 2 года назад

    Great video! The explanation was clear and concise!

  • @naikganesh5677
    @naikganesh5677 3 года назад +1

    You nailed it 🔥🔥

  • @ajeethsuryash5123
    @ajeethsuryash5123 2 года назад

    Amazing video... Expecting more of such class...

  • @skidroadkustom5953
    @skidroadkustom5953 4 месяца назад

    A lot of great info, thanks. I did watch this one at least 15 times

  • @tanoryjakaperdana1419
    @tanoryjakaperdana1419 3 года назад

    Thanks bro.. you explain these stuffs with human language.. subscribed and liked.. 👍👍👍

  • @justdoingodswork
    @justdoingodswork 3 года назад

    Thank you so much, its so great to learn these and importance of register. I'll definitely implement these in my codes from now on.
    Please keep making these videos about advance coding.
    Thanks again

  • @SirLeecher
    @SirLeecher 3 года назад

    Explained it really well and helped me understand, very nice !

  • @DustinWill
    @DustinWill 3 года назад

    Best explanation and great animation. Very clearly stated.

  • @JLCPCB
    @JLCPCB 2 года назад +1

    Great video as always! 😀

  • @littlemadness221990
    @littlemadness221990 3 года назад

    Great video ! This is a perfect foundation for future learning.

  • @SusanAmberBruce
    @SusanAmberBruce 3 года назад

    Thank you, I have been waiting for This tutorial, big help!

  • @jstro-hobbytech
    @jstro-hobbytech 2 года назад

    Cool video man. Optimized code gets me going.

  • @myhobbies5965
    @myhobbies5965 3 года назад

    Always waiting for such a atmega mcu program learning videos.

  • @amnesie6615
    @amnesie6615 3 года назад

    This is what I've subscribed for! COOL! Thank you!

  • @sennabullet
    @sennabullet Год назад

    A,fantastic explanation made easier to understand with superb animations. Thank you for sharing your knowledge.

  • @VorpalForceField
    @VorpalForceField Год назад

    Absolutely Fantastic Content.. Thank You !!!

  • @pedroaugusto5995
    @pedroaugusto5995 5 месяцев назад

    Nice video, your didactics is something else!

  • @jawwadahmad7774
    @jawwadahmad7774 3 года назад

    Hard-Work 👍. Easy to Understand.

  • @shoumikahmed6373
    @shoumikahmed6373 3 года назад

    Waiting for it for a long time......

  • @Danixu86
    @Danixu86 3 года назад

    Nice tutorial. There are a lot of things that I did not understand until now. Also would be nice to have any tutorial like this talking about Timers and how to change it to change PWM signals for example.

  • @nyakoi
    @nyakoi 3 года назад

    Thank you! Always good to learn something new 😀

  • @ranaharsh365
    @ranaharsh365 3 года назад

    Finally something that I badly needed.....

  • @stark_energy
    @stark_energy Год назад

    A very detailed and great explanation to low-level optimization to Arduino. However we should point out that this only works on specific Arduino type, different type might require different configuration (and thus different code on different platform), while on the other hand a common Arduino function like digitalRead / Write is platform agnostic, it can even run on ESP32 or ESP8266 and many other types that conform with Arduino.h standard without changing code (except the pin number). So, for the sake of simplicity and portability there is always performance hit to pay. This is true for all programming language. The more you into performance, the more specific/limited device your code can work.

  • @Taran72
    @Taran72 3 года назад +2

    Great explanation!! Thanks.

  • @sawansihag6974
    @sawansihag6974 3 года назад

    Thanks for sharing this precious knowledge ❤️❤️🔥

  • @SumitSharma-do8ye
    @SumitSharma-do8ye 3 года назад

    U r my fav.. u tuber

  • @luisbodart4140
    @luisbodart4140 3 года назад

    I understood all. I love you.

  • @GrandNecro
    @GrandNecro 3 года назад

    best tutorial i've found yet! i do have a question though. how do you read analog value? PINC register only stores the digital value of the analog pins.

  • @FixTronics
    @FixTronics 3 года назад

    U R absolutely awesome
    I needed these information way long time ago
    Thank you for sharing it
    🥰⚘

  • @KresnaPermana
    @KresnaPermana 3 года назад

    This video is awesome, thank you to show us

  • @chiparooo
    @chiparooo 3 года назад

    Very interesting! Great graphics. Learned a lot. Thanks for sharing!

  • @abpccpba
    @abpccpba 2 года назад

    Thanks, Wonderful Graphic.

  • @jimg9294
    @jimg9294 3 года назад

    Thank you, this tutorial is excellent!

  • @nqobilesibisi3544
    @nqobilesibisi3544 Год назад

    now this is what im talkin about! 😃😃 , wow !

  • @SudhirKumar-bq4xz
    @SudhirKumar-bq4xz 3 года назад +2

    Great and informative video as always.... :-)
    Sir, please make a video on how to interface external ADCs, selection of ADC, important specification while selecting a ADC.....

  • @creatorx3795
    @creatorx3795 3 года назад

    Thank you for that lesson!

  • @romanm4282
    @romanm4282 3 года назад

    great video! you are well done!
    Отличное видео! Вы молодец!

  • @PhamhongDung68
    @PhamhongDung68 Год назад

    Thanks very much for this clip!

  • @curiouslittledroid1234
    @curiouslittledroid1234 3 года назад

    Great presentation. Nice video editing and great use of motion graphics.

  • @stevenrogersfineart4224
    @stevenrogersfineart4224 2 года назад

    This is such an excellent video

  • @harikamalakarreddydarapu7410
    @harikamalakarreddydarapu7410 3 года назад +1

    Very nice information.and very good explanation

  • @kendallbarboza6477
    @kendallbarboza6477 3 года назад

    Excellent video man, thanks!

  • @Nopf1
    @Nopf1 3 года назад

    Very well explained!

  • @jokarjapan
    @jokarjapan 2 года назад

    very clearing thank you

  • @JamesLoper
    @JamesLoper 2 года назад

    Thanks this is a great tutorial!

  • @amalsurendran1984
    @amalsurendran1984 3 года назад

    You're the BESTT!!

  • @tejaspatil5929
    @tejaspatil5929 3 года назад

    please explain even more about the arduino, this video helped me a lot, please make even more videos

  • @jotyhasan4846
    @jotyhasan4846 Год назад

    You r so great! Love u so much❤️❤️❤️

  • @hriteshmerwade6039
    @hriteshmerwade6039 Год назад

    Very good explaining

  • @Sekhar_Home
    @Sekhar_Home 3 года назад

    Pls make more and more video on 101 arduino. I need to learn embeded system from you.. you are the best in teaching microcontroller.