Thank you very much for your effort. Well, it is an advanced way of explaining a subject that is difficult to understand, even for beginners. Thanks again. I am actually determined to benefit from all these episodes.
@filipp76114 күн бұрын
Can't compile this for PIC16F877, is it possible at all? The main error is "use of undeclared identifier 'LATAbits'".
@Microesque4 күн бұрын
PIC16 microcontrollers are very old and use a different architecture; you shouldn't use them even for learning purposes, unless you have to. You can check the comment from "@joshuvajohnvarghese2372" below, where I explained the issue further. Basically you can make it work by: 1 - Changing the LAT... definitions in the header file to their PORT... equivalent. 2 - Making sure the pins you're using are properly set to digital (use PCFG bits in ADCON1). 3 - Making sure to not use an open-drain only pin.
@filipp76114 күн бұрын
@@Microesque Thank you a lot for the quick answer, I just have 6 units of 16f877 and don't want to buy new ones until I use those, next time will buy something new.
@brettholden37637 күн бұрын
FOCUS
@FatihAkkaya-vo7xp15 күн бұрын
What book did you use?
@Microesque14 күн бұрын
No books, just "XC8 User's Guide" and general C knowledge.
@sravankumarreddy8063Ай бұрын
Hello sir, Good article which would be helpfull for beginers, But when i am using alternating signal to detect zero crossing signal, I am not able to find the signal whether it crosses zero axis. I am using to detect three phase(440v 50Hz) by zerocrossing with the help of PIC12f1501. Could you please help me on that or can you please make one tutorial on that.
@MicroesqueАй бұрын
There are many ways to detect zero crossings, you don't even really need a microcontroller depending on what you're trying to do. Without seeing your circuit I can't really help you.
@maiszaaim8843Ай бұрын
best yt tutor ever
@mustafashaikh67422 ай бұрын
Can make a video in adc conversation in pic microntroller
@Microesque2 ай бұрын
That is supposed to be the next video on the list, but I haven't had the time to make videos for a while now😟
@maiszaaim88432 ай бұрын
thank you, thank you till the world ends
@Microesque2 ай бұрын
Thanks 👍
@RajinderSingh-bx3cz2 ай бұрын
Thank you so much for this video. If possible please continue to make more videos.
@Microesque2 ай бұрын
Thanks 👍 I want to, believe me, but it doesn't seem like it'll be possible for a while still...
@fifaham2 ай бұрын
@27:07 I believe this will reduce power consumption and decrease the latency period for the ISR mechanism to respond to an external request - because of how IRQ works.
@Microesque2 ай бұрын
That depends. Most of the time, efficiency won't change since you'll enter and leave the interrupt routines the same number of times. Power consumption would only reduce if you also utilized low-power modes along with interrupts. As an extra note: Jumping to the interrupt routine takes 3-4 instructions. Checking which interrupt routine has been fired also takes many instructions. If you're using two interrupt routines at the same time, that also adds a bunch of instructions since there's only one set of "shadow registers" for this microcontroller. So technically, depending on the application, interrupts may even reduce the efficiency.
@dabeasthalofan62762 ай бұрын
I'm using a PIC24FJ64GU205 Curiosity Nano, used your code and redefined all the pins for my device and nothing displays on my LCD :(. I did however skip the OSCCON code in the main file. Not sure how this would impact my results.
@cesarborjaruiz35843 ай бұрын
Just watched all ur videos, the best mC videos to ever be released! Congrats
@dami_wick3 ай бұрын
great video ! anyways do you know how to change the font color of the "groups" (I'm not sure what it's called, when i click on set configuration bits under production, the tab appears on the bottom. i want to change the font color of it.) thanks
@Microesque3 ай бұрын
Anything custom from Microchip in the IDE (NetBeans) seems to use hard-coded colors. There's an output tab in the miscellaneous options, but it only seems to work on native NetBeans windows. Windows for MCC or analyzers are still completely white too. Unfortunately, there's no official support for dark-mode, so this is all we get. You just have to bear with it, or accept getting flashbanged forever...
@waynegnarlie13 ай бұрын
For those unable to see their own named general purpose register names (labels) in watches and variables, do this: Click the toolbox (Project Properties) icon from the Dashboard (extreme upper left icon), then select 'mpasm (Global Options)' and check the box for 'build in absolute mode', apply and exit. Then debug. It's taken me a couple of years to getting around to finding this fix, I have searched countless Microchip forums and watched as many YT videos to no avail. Hope this helps you.
@proxy75473 ай бұрын
you are the best !
@Microesque3 ай бұрын
Thanks 👍
@badalnishant92034 ай бұрын
What a nice explaination you have done, do you have any other courses on advanced emebdded system. pls share .
@Microesque4 ай бұрын
Thanks 👍I don't have any courses or anything like that. This is kind of like a hobby I do for fun.
@hassanrezaei68374 ай бұрын
You are wonderful, bro
@Microesque4 ай бұрын
You too my man 👍
@sivapriyarnath43774 ай бұрын
What is the built-in function for pic24fj128ga704
@Microesque4 ай бұрын
PIC24 are 16-bit microcontrollers, so the process is a little different. This is why I try to tech how to read datasheets and manuals. Answers to questions like these will almost always be somewhere in the user's guide of the compiler. I've included a short and a long answer below. I recommend reading both, but it's up to you 👍 ------------------------------- *Short answer:* -> Define the "FCY" macro as the instruction frequency of your microcontroller, so for 10MHz: _"__#define__ FCY 10000000UL"_ -> Include the "libpic30.h" library in your code: _"__#include__ <libpic30.h>"_ -> Now you should be able to use the same "__delay_ms()" and "__delay_us()" functions. Be careful, you need to define "FCY" before including the library! ------------------------------- *Long answer:* -> If you open the XC16 user's guide ( ww1.microchip.com/downloads/en/DeviceDoc/50002071K.pdf ) and go to page 63, there is a section for "How Can I Implement a Delay in My Code?". There, it tells you that there are library functions, but you have to download it to use them. It also directs you to another manual dedicated to 16-bit libraries for XC16. -> If you open the 16-bit libraries document ( ww1.microchip.com/downloads/en/DeviceDoc/16-Bit-Language-Tools-Libraries-DS50001456K.pdf ) and read the introduction etc, it tells you that the XC16 comes with the libraries pre-installed already. You just have to explicitly include them in your code. -> Now you can just search the term "delay" in the page to see your options. After finding the function you're looking for, it tells you which library you have to include, the signature of the function, and also a general description. I recommend you glance over some of the functions, as there are a lot of convenient ones that may catch your eye 👍
@JacksonBockus4 ай бұрын
It’d be great if you could provide links to the data sheets you’re using.
@Microesque4 ай бұрын
It's very easy to find datasheets aside from the lesser-known brands, so I didn't bother. Just type the name of your chip + "datasheet", and it should be the first link 👍
@hassanrezaei68374 ай бұрын
Very useful 😍
@tedbastwock38104 ай бұрын
AMAZING content, thank you !!! 🙏
@Microesque4 ай бұрын
Thanks 👍
@tedbastwock38104 ай бұрын
Fantastic explanation, super clear
@tedbastwock38104 ай бұрын
Good intro to datasheets, and great explanation and example of the wrapping capability of C vs. assembly. Very useful, thank you
@Microesque4 ай бұрын
Thanks 👍
@tedbastwock38105 ай бұрын
Wow, such a clear explanation, I never knew this, thank you
@Microesque5 ай бұрын
Thanks 👍
@tedbastwock38105 ай бұрын
On video 4 of 18 .. this is a fantastic video series, well done and thank you 🙏
@Microesque5 ай бұрын
No, thank YOU for watching 👍
@anithasshenoy66625 ай бұрын
I have not seen registers explained in a more simpler manner. I have trying to understand these , but found too much of undigestable jargon. Tris registers -> PIN as INPUT or OUTPUT Lat registers -> PIN as HIGH or LOW Port registers -> READS PIN HIGH or LOW ANSEL registers -> PIN as ANALOG or DIGITAL WPU -> Enable / Disable INTERNAL PU-UP Resistors How simple to understand!! Great job. Thank you.
@Microesque5 ай бұрын
Glad you found it useful 👍
@weekendle55645 ай бұрын
Hello, I am using PIC32MK052MCJ and MPLAB X IDE v6.05, and I am running into issue when following your example. It's break the breakpoint whenever I debugging! Do you know how to fix it?
@Microesque5 ай бұрын
@@weekendle5564 Glad you resolved your issue 👍
@vigneshpr.58145 ай бұрын
Can you make any tutorials on using JTAG or much more about debugging techniques
@Microesque5 ай бұрын
I already have a debugging tutorial series, which is mostly done. Aside from that, I plan on keeping this series to this particular microcontroller and programmer for now. Maybe in the future 👍
@syaffiqriyaacob98005 ай бұрын
Sorry sir i just want to ask do you have adc.h library tutorials
@Microesque5 ай бұрын
Unfortunately, not yet. That's supposed to be the next video on the list, but I haven't had the chance to work on it for a long time.
@volerdenuit15825 ай бұрын
you are GREAT
@Microesque5 ай бұрын
Thanks 👍
@mitchellhw20065 ай бұрын
What happened to 2's compliment notation for subtraction?
@mitchellhw20065 ай бұрын
I was born during the dinosaur period....thought maybe it was not used anymore. (we counted using dinosaur bones)@@Microesque
@icarossavvides26416 ай бұрын
Very interesting, at about 15:45, you mention maximum source and sink currents, whilst the user needs to take notice of these limits they must also take in to account the maximum chip dissipation i.e. don't expect to be able to source or sink the maximum current through all the IO pins at the same time.
@Microesque6 ай бұрын
Of course. I was just trying to keep it simple since most of them rarely matter 👍 There are a bunch of limiting factors, and which ever one is the most limiting will apply. Max instantaneous current, max continuous current, max port current, max device current, max temperature, max power dissipation etc... Also, these are absolute maximum values. Ideally, you should never get close to these.
@ryleebrownfox6 ай бұрын
He is right. I'm a beginner and experience the same mismatch problem. Thank you very much
@Microesque6 ай бұрын
Appreciate the compliment 👍
@ngtony54286 ай бұрын
In learning , I like separate 21 file . I watched more than 10 youtube about PIC LED , YOU ARE THE BEST. THANK.
@thanhphucnguyen84366 ай бұрын
Very useful tutorial, thank you so much
@Microesque6 ай бұрын
Thanks 👍
@LandLord-od8pr6 ай бұрын
good job
@jeroenwk7 ай бұрын
These tutorials are great. If you are new to PIC programming like me it will help you to get up to speed in very little time. It’s very well explained and it is amazing how much knowledge is compressed into just some minutes of video. 👍🏻
@Microesque7 ай бұрын
Thanks 👍
@homemade-it24957 ай бұрын
Before it was socomplicated for me to understand assembly language to talk directly to microcontrollers, since i found your channel my understanding levels up. Many thanks from Morocco 😊
@Microesque7 ай бұрын
Glad it was helpful 👍
@sapient_design7 ай бұрын
FYI! If using a PIC16F74 MCU then during the "Configuring the library for your connections" section, Change LATAbits.LATA0 to PORTAbits.RA0 and so on for 1,2,3,4,5 This had me stumped for awhile. After consulting the datasheet I was able to identify the issue. Thanks for the awesome video!
@Microesque7 ай бұрын
Yeah, PIC16 microcontrollers are ancient and don't have LAT bits; they use their PORT bits to change their outputs. Ideally, no one should use them in this day and age. If you have any questions you can just mail me btw, I usually check it every day 👍
@SanelKeys7 ай бұрын
My second comment on this video, after while: I use your code as reference for making my own libraries. I use CCS PIC C. I've made my own headers for every PIC I use, just like headers in XC8. So, every register has bit names like those in XC8, just like every register has same or similar names, and is used in very similar fashion (dereferencing appropriate union).
@Microesque7 ай бұрын
I'm assuming it worked out then 👍 Normally, ordering of the bit-fields is implementation defined in C; XC8 compiler strictly states that it orders them by their definition order, I guess that's also how CCS compiler is too.
@SanelKeys7 ай бұрын
@@Microesque CCS has hidden bit definitions, that I was unable to find. It's part of so called built in code of compiler. One of reasons I've made my structures/unions was an exercise for working with unions and structures, emulating CMSIS and bare metal programming for the STM32 MCUs.
@OviMG7 ай бұрын
Ok, but the question is, does the led turn on when bit is 1 or bit is 0? TRISE = 0b11111110; LATE = 0b00000001; because from this code the led (coresponding to the last bit) is turning OFF, while you said "1" is for turning the led ON
@Microesque7 ай бұрын
When the LAT bit is 1, the pin connects to positive rail; if the LAT bit is 0, the pin connects to ground, that's all LAT bit does. If the cathode (-) pin of your led is connected to the microcontroller and the resistor connected to the positive rail, the LED will turn on when the LAT bit is 0.
@OviMG7 ай бұрын
@@Microesque Thank you so much! Now, it makes sense!
@Microesque7 ай бұрын
@@OviMG np 👍
@sisakestgroup7 ай бұрын
ThANK YOU SO MUCH FOR ALL THERE VIDEOS, THANK YOU
@Microesque7 ай бұрын
Thanks 👍
@bakeronews18 ай бұрын
The font size is too small. It’s difficult to see what you’re explaining.
@suntzu14098 ай бұрын
This by far the best series on programming PIC that i have come across. To anyone watching this, make sure to check out various resources in the video descriptions
@Microesque8 ай бұрын
Appreciate the compliment 👍
@pradeepmenaria23648 ай бұрын
Excellent
@Microesque8 ай бұрын
Thanks 👍
@abdulbarirawan56948 ай бұрын
❤❤❤
@mega20348 ай бұрын
Hello my friend, Transistors are 0 or 1 only when they are switch mode, but in amplification mode they can range between o and 5. By the way, I like your videos a lot.
@prasanthchigurupatii9 ай бұрын
Awesome explanation, Kind request to Explain for I2C+PCF8574A +LCD