سلام عزيزان.
من يه پروگرامر usb-isp خريدم كه عكسشو گذاشتم:
[
attachment=7465]
اون IC كه روي بردشه هم مگا 8 هست .يه CD هم داشت كه هرچي توش گفته بود را مو به مو اجرا كردم ولي نه CODEVISION ميشناسدش نه حتي برنامهي خودش كه اسمش progisp.exe است ولي وقتي روشنش ميكني كامپيوتر ميشناسدش و اسمشو مينويسه.در ضمن روش هم اسم هيچ مدلي رو ننوشته يعني شركتش معلومه ولي مدلش نه.از كساني كه با اين پروگرامر كار كردن خواهش ميكنم طرز كار با اون رو به من بگن.ممنونم.
پس پروگرامر رو میشناسه مشکل در پروگرام کردن یا سیم کشی یا میکرو هست لطفا تاپیک های قبلی رو بخونید
تاپيك هاي قبلي رو سرچ كردم ولي همش درباره ساختن پروگرامر بود و حرفي هم درباره اين نوع پروگرامر نزده بودا.
صلا" ميتونيد توضيح بديد توي CODEVISION چطور ميشه از اتصال صحيح ميكرو اطلاع حاصل كرد؟
شما اول با برنامه خود پروگرامر پروگرام کنید بعد پروگرامر رو به کدویژن بشناسونیدش
برای همین هم باید برین پست های قبلی که همگی مشکل در پروگرام کردن میکرو داشتن رو جست جو کنید
خيلي ممنونم ازتون .
با هزار تا دردسر توي تاپيك هاي قبلي رو سرچ كردم و همشو خوندم و در پايان khazama avr programmer را يافتم كه تونست ميكرو را پروگرم كنه .تونستم يه فلاشر 8 كاناله كه به پورت D وصل ميشه پيدا كنم.توي پروتئوس خوب كار ميكنه. و خودم دارم گسترشش ميدم.چند تا سوال دارم:
1-براي پروگرام كردن ميكرو آيا فقط بايد فايلي كه با فرمت(HEX) هست رو روي ميكرو پروگرم كنم يا بايد فايل با فرمت( EEP) رو هم روي eeprom پروگرام كنم؟
2-وقتي ميكرو (ATMEGA32)پروگرام شد و خواستم روي مدار بذارمش دقيقا" به كدام پايه هاش بايد تغذيه وصل كنم و با توجه به اين كه فقط آداپتور 12 ولت دارم آيا بهتر نيست با چند تا باتري قلمي تغذيش كنم؟(با توجه به اين كه منبع كلاكش كريستال خارجي نيست و منبع كلاكش داخليه)
بقيه سوالام رو بعدا" ميپرسم.
میکرو های AVR با ولتاژ 5 کار میکنن و اگه بهش 6برسه میسوزه چهه برسه به 12 ولت که دیگه دود میشه!
برای این که بتونید 12 رو به 5 تبدیل کنید از ای سی رگولاتور 7805 باید استفاده کنید.
نه همون فایل هگز رو پروگرام کنید .
برای اینکه بدونید باید به کدوم پایه های میکرو باید ولتاژ بدین هم بهتره دیتاشیت این ای سی رو بخونید
خيلي ممنون. درست كار كرد.حالا يه سوال درباره برنامه نويسي كد ويژن دارم.من يه متغير سراسري خارج از void main تعريف كردم به نام n .پورت B را ورودي تعريف كردم حالا ميخوام وقتي پين اول پورت B يعني PB0 يك شد متغير n اگر كوچكتر از 4 است به اضافه يك شود(++n) و اگر برابر 4 است 1 شود (1=n) .
اگر اين قطعه كدي را كه ميگم بذاريد خيلي ممنون ميشم. چون هنوز مبتديام و كار با وقفهها و اين چيز ها را بلد نيستم.
کد:
while (1)
{
// Place your code here
if(PINB.0==1)
{
if(n>4) n++;
if (n=4) n=1;
}
}
البته در تيكه كد بالا بجاي
نقل قول: if(n>4) n++;
if (n=4) n=1;
اينطوري بايستي استفاده كني.
نقل قول: if(n<4) n++;
if (n==4) n=1;
و بهتر از اون كد زير هست.
نقل قول: if(n<4) n++;
else if (n==4) n=1;
براي شرط تساوي حتما بايد از " == " استفاده كرد.
موفق باشيد.
(۱۷-تير-۱۳۹۱, ۰۹:۰۱:۰۲)abbasalifix نوشته است: [ -> ]کد:
while (1)
{
// Place your code here
if(PINB.0==1)
{
if(n>4) n++;
if (n=4) n=1;
}
}
فكر نكنم واسه كاري كه من ميخوام بكنم اين كد درست باشه.من ميخوام توي قسمت "place your code here" يه دستور CASE switch بذارم كه مثلا" وقتي n برابر 1 بود حالت اول چشمك زدن 8 ال اي دي اي باشه كه به پورت D وصل شده اند و وقتي n دو بود حالت دوم چشمك زدن و به همين ترتيب.
با توجه به اينكه اين دستور در حلقهي while نوشته شده و حالت چشمك زدن هم DELAY زيادي داره پس وقتي pb0 يك بشه همون آن حالت چشمك زدن عوض نميشه.در صورتي كه من مي خوام حالت همون لحظه عوض بشه.
كدم اينه:
کد:
while (1)
{
switch (n)
{
case 1:
حالت اول;
break;
case 2:
حالت دوم;
break;
case 3:
حالت سوم;
break;
case 4:
حالت چهارم;
break;
}
}
شما سوال قبلي تون كلا يه چيز بود و اين سوالتون يه چيز ديگه ... !
در كل Switch case و if و ... يه جورهه ، بستگي به خودت دارهه كه با كدوميشون حال كني ...
چيزي رو كه گفتيد هم عملي هست.همين رو با IF هم مي شه نوشت ...
در كل يك روش واحد وجود ندارهه ...