Sunday, September 27, 2015

මයික්‍රොකන්ට්‍රෝලර් පාඩම - 03 (Win AVR, C code and create Makefile)



ඔන්න අපි අපේ පාඩම් මාලාවේ තුන්වෙනි කොටසත් අරන් ආවා. ඉස්සෙල්ලා පාඩම් දෙකන් ම ඔයාලට වැදගත් කාරනා ගොඩක් ඉගෙනගන්න පුළුවන් වෙන්න ඇති කියලා අපි හිතනවා. 

මුල් ලිපි 2 පහල සබැදියෙන් බලන්න.
මයික්‍රොකන්ට්‍රෝලර් පාඩම - 02

දෙවෙනි පාඩමට අනුව අපිට මේකට අවශ්‍ය software සේරම හරියට computer එක install කරගන්න ඇති කියලත් මම හිතනවා. හොදයි එහෙනම් අද අපි WinAVR කියන programming interface කේ මුලික settings හදන හැටි සහ microcontroller  එක program කරන්න අවශ්‍ය කරන files හදාගන්න හැටි ඉගෙනගනිමු

මුලින්ම කියන්න ඕනා අපි programming language එක විදියට තෝරාගත්තේ C++ කියන language එක. ඒක භාවිතා කරන්න පහසු නමුත් low level language එකක්. මේ ගැන අලුතින්ම ඉගෙනගන්න අයට නම් දැන් ප්‍රශ්නයක් මතුවෙනවා ඇති microcontroller IC වලටත් මේ language තේරෙනවද කියලා. නැහැ යාලුවනේ දැනට ලෝකේ භාවිතාවන කිසිම electronic උපාංගයකට කිසිම භාෂාවක් තේරෙන්නේ නෑcomputer එකකටවත්. electronic උපාංග දන්නේ එක එක දෙයයි. ඒ තමා එයාගේ එක් එක් කොටසට වෝල්ටීයතාවයක් / ධාරාවක් ලැබෙනවද නැද්ද යන දේ පමණයි. ඉතින් අපි මේ විවිධ භාෂා භාවිතා කරලා ලියන දේවල් microcontroller එකට දැනෙන විදියට එක් එක් කොටසට වෝල්ටීයතාවයක් / ධාරාවක් ලැබෙන ආකාරයට හරවන්න ඕනා. අන්න ඒ දේ තමයි මේ programming interface එක මගින් කරන්නේ. මේ interface එක අපි ලියන එක එක codes "1" හා "0" බවට පරිවර්තනය කරලා IC කේ අදාල කොටස් වල අදාල register වල save කරනවා. ඊට පස්සේ microcontroller එක  register වල තියෙන අගයන් අනුව වැඩ කරනවා. ඕක තමයි මුලිකවම සිදුවෙන්නේ.

හොදයි එහෙනම් අද අපේ පාඩමේ කොටසට එමුකො.

ඔයාල install කරගත්ත WinAVR කියන software package එකේ Programmers notepad කියන writing interface එක මුලින්ම open  කරගන්නකො. ඒකට 
Start menu  All programs  WinAVR-20100110 → Programmers notepad කියන තැනට යන්න. එතන නැත්නම්,
C:\WinAVR-20100110\pn\pn.exe කියන තැන අනිවාර්යෙන්ම ඇති.

එක open කරහම පහත පරිදි window එකක් ලැබේවි.


Programmers notepad එකේ tab හා tools ගැන කතා කලොත් සාමාන්‍ය editor එකක් වගේම File, Edit ... වගේ පොදු ඒවා දැකගන්න පුළුවන්. ඒවායේ අන්තර්ගත tools ඔයාලට ඒක භාවිතා කරණ කොට ඉගෙනගන්න පුළුවන් වේවි. එත් අපිට මුලිකව IC එකක් program කරන්න නම් විශේෂ tools තුනක් ඕනා වෙනවා. ඒවා තමයි,
1. [WinAVR] Make All
2. [WinAVR] Make Clean
3. [WinAVR] Program

මේ tools ඔයාලට Tools කියන tab එකෙන් හොයාගන්න පුළුවන්. මම ඔයාලට කියලා දෙන්නම් මේ එක එක tool වල තියෙන වැදගත්කම.

[WinAVR] Make All
මම ඔයාලට මේ පාඩමේ මුලදීම කිවුවා අපි විවිද භාෂා යොදාගෙන code කලාට microcontroller එකට තේරෙන්නේ "1" හෝ "0" පමණයි කියලා. මේ [WinAVR] Make All කියන command එකෙන් කරන්නේ අපි ලියපු C code එක අපි භාවිතා කරන IC එකේ Registers වලට තේරෙන විදියට convert කරලා .hex කියන extension  එක සහිත file එකක් නිරිමාණය කරන එකයි. IC එක අපිට ඕන විදියට program වෙන්න නම් මේ .hex කියන file එක IC එකට download කරන්න ඕනා.

[WinAVR] Make Clean
මේ command එකෙන් වෙන්නේ Make All කියන command එකෙන් generate කරපු .hex file එක හා අනෙකුත් files delete කරලා දාන එකයි.
[WinAVR] Program
මේක තමයි ඊ ලගට වැදගත්ම එක. මේ command tool එක භාවිතා කරලා Make All එකේදී generate කරපු .hex කියන file එක අපේ programmer එක හරහා microcontroller එකට download කරවන්න පුළුවන්. ඒ නිසා IC එක program කරන්න නම් මේ tools ටික අත්‍යවශ්‍යයි කියලා කියන්න පුළුවන්.

හොදයි යාලුවනේ දැන් මම ඔයාලට සරල code එකක් දෙන්නම් ඒක copy කරලා editor එකේ paste කරලා ඒ file එක, ඔයාලා save කරගන්න බලාපොරොත්තු වෙන folder එකක file_name.c නමින් save කරන්න. (මතක ඇතුව file_name කියන තැනට ඔයාල කැමති නමකුත්, ".c" කියන extension 1ත් දාන්න.)

#include <avr/io.h>
#define F_CPU 1000000

int main(void){
      DDRB = 0Xff;
      PORTB = 0X01;
}

code එක දාලා save කරලා tools  [WinAVR] Make All කියන command එක දෙන්න. දැන් ඔයාලට Output කියන window එකේ පහත පරිදි massage එකක් පෙනේවි.


මේ massage එකෙන් කියන්නේ file එක make කරන්න අවශ්‍ය කරන විධාන නෑ කියන එකයි. ඒක හරිගස්සන්න නම් අපිට අදාල විධාන සහිත file එකක් හදන්න වෙනවා. එකට අපි කියන්නේ Makefile එකක් හදනවා කියලයි. Makefile එකක් හදන්න නම් Start   All Programs  WinAVR-20100110  Mfile[WinAVR] වෙත යන්න. දැන් ඔයාලට පහත පරිදි window එකක් open වේවි.


දැන් මේකේ Makefile කියන tab එකේ Main file name..  කියන එක තෝරලා ඊළගට එන box එකේ ඔයා .c කියන file එකට දීපු නම ම දෙන්න. (code එක save කරපු file එකේ නම)

ඊළගට Makefile කියන tab එකේ ම MCU type   ATmega   atmega32 තෝරන්න. (මේකෙන් කරේ අපි program කරන්න යන IC එක මොකක්ද කියල Makefile එකට දීපු එකයි.)



ඊළගට  Makefile කියන tab එකේම Port → usb තෝරන්න.

ඊළගට  Makefile කියන tab එකේම Programmer ගිහින් කැමති එකක් තෝරන්න. මෙතැනදී අපි program කරන්න යන Programmer එක තොරගන්නයි ඕනා. අපි program කරන්න යන්නේ usbasp කියන programmer එකයි. නමුත් ඒක මේ drop down list එකේ නෑ. ඒ නිසා අපි කැමති එකක් තෝරලා ඒක edit කරගන්න ඕනා.
දැන් ඔයාලා Programmer කියන තැනින් කැමති එකක් තේරුවා නම් ඊට පස්සේ Enable Editing of Makefile කියන එක තෝරන්න.
දැන් පහල රුපයේ පෙන විදියට ආපු window එකේ රවුම් කරලා තියෙන තැන ඔයාලා ඉස්සෙල්ලා තෝරපු programmer එකේ නම ඇති. ඒක මකලා ඒ වෙනුවට usbasp කියල type කරන්න.
ඒක හැදුවහම පහත රූපය වාගේ වෙන්න ඕනා 

දැන් සේරම හරි. ඊළගට File  Save As.. ගිහින් ඔයාල main.c file එක හදපු තැනටම මේ file එකත් save කරන්න. මතක ඇතුව file එකේ නම Makefile ලෙසම තියන්න. එක වෙනස් කරන්න එපා..

හරි දැන් ඔයා මම දීපු code එක type කරපු programmer’s notepad එකට ගිහින් tools  [WinAVR] Make All කියන command එක නැවත දෙන්න. දැන් ඔයාලට ඉස්සෙල්ලා වගේ error එකක් එන්නේ නැතුව පහත පරිදි massage එකක් ලැබේවි.


ඔයාගේ files save කරපු location එකට ගිහින් බලන්න file_name.hex නමින් file එකක් හැදිලද කියලා. එහෙම නම් සේරම හරි. මේ .hex කියන file එක තමයි යාලුවනේ අපි micro-controller එකට download කරන්නේ.

අද පොස්ට් එක ගොඩක් දිගයි.එහෙනම් අපි ඊළඟ පොස්ටුවෙන් micro-controller එක ගැන ටිකක් ඉගෙන ගමු. මොනවාද එකේ තියෙන්නේ, කොහොමද එක වැඩ කරන්නේ, හා වැදගත් තවත් දේවල් ටිකක් බලමු.

අපිත් එක්ක දිගටම රැදිල ඉන්න කියලා මම ඔයාලගෙන් ඉල්ලා සිටිනවා. ඒ වගේම ඔයාලා හැකි පමණින් comment කරන්න කියලත් ඉල්ලා සිටිනවා. ඔයාලගේ අදහස් අපිව දෛර්යමත් කරාවි.

ඔයාල හැමෝටම සුභ දවසක්....

මේ ලිපිය ප්‍රයෝජනවත් කියලා හිතෙනවනම් මේ ලිපිය Share කරලා යාළුවන්ටත් කියන්න. ජය වේවා..!!


Share/Bookmark

2 comments:

  1. ස්තුති යාළුවා......නියම පාඩමක් දිගටම කරන් යන්න.....ඔබට ජය

    ReplyDelete
  2. thanks very much very importance lessons... keep going please

    ReplyDelete