 |

|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2026 02 27, 11:19. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 01, 16:23 |
|
|
|
|
pradines zinias igijau ~1984 pasigamines "Mikro 80" ir pramokes i8080 assembleri, veliau maskvieciu ZX-64 + FDD varianta, issiderginejau is zx visokia periferija.
su PLC susiduriau ~1986 CDP1802 bazeje, kuris tam tikra prasme buvo kurkas tinkamesnis tokiems tikslams nei Z80 ar juolab MC6809
ismoksi C, C++ sintakse, tiks betkokiai c sintakse naudojanciai Java, PHP, Perl, Pyton, Rubby ir t.t.
bet pagrindinis programuotoju uzdarbis ura ne uCU, o web/db, buhalterija.
jei uzsimanysi prasiukt pramones procesu automatizacijoje - bus sunku del sistemu sertifikavimo ir kitu reikalavimu. |
|
|
|
|
|
 |
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 08, 10:41 |
|
|
|
|
Jei kam bus idomu pasibandyti ir pastudijuoti imetu projektėli Dice Game (kauliukas). Paspaudus mygtuką "iškrenta" atsitiktinis kauliuko skaičius.
http://www.part.lt/img/ad2187a0e6093801b7aca79778e0305e16.png
kodas:
/*******************************************************************************
CONFIG = 0x31D4
Project > Edit project:
Oscillator: Internal RC No Clock (fixed 4MHz)
WDT: Off
PUT: Off
MCLRE: Diasbled (Internal Pull-up)
BOD: On
CP: Off
Data EE RP: Off
*******************************************************************************/
unsigned short int i;
void interrupt(){
if (INTCON.INTF){ // if interrupt comming...
if (i==1) {GPIO = 0b00000001;}
else if (i==2) {GPIO = 0b00010000;}
else if (i==3) {GPIO = 0b00010001;}
else if (i==4) {GPIO = 0b00010010;}
else if (i==5) {GPIO = 0b00010011;}
else if (i==6) {GPIO = 0b00110010;}
}
INTCON.INTF = 0; // GP2 interrupt flag
}
void main() {
INTCON = 0b11010000; // pdf 15.
CMCON = 0b00000111; // pdf 37.
TRISIO = 0b00001100; // pdf 21-22.
GPIO = 0b00110011; // all LEDs are on
OPTION_REG.INTEDG = 0; // interrupt on falling edge, pdf 14.
while(1){
for(i=1; i<7; i++){
delay_ms(1);
}
}
}
O cia siuntinukas kad nereiktu braižyti (source, hex, Proteus, schema)
http://ikelk.lt/downloads/fe3366ab79
Niekaip nedaeina kaip ta atsitiktinė (ar ne atsitiktinė) tvarka veikia... |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 08, 11:57 |
|
|
|
|
O jeigu padarius taip, kad paspaudus mygtuką būtų visalaik vienodas impulsų skaičius tada skaičiai "iškris" normaliai, kaip parašytas kodas eilutė po eilutės?
Čia gal reiktų pabandyti kokį kondiką prie mygtuko užkabinti? Arba kokį delay_ms(100) iterpti ? |
|
|
|
|
|
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 08, 13:33 |
|
|
|
|
| AlgisL rašo: |
| del mygtuko netobulumo, kantaktui susijungiant ivyksta "traskesys", kurio metu susigeneruoja neprognozuojamas skaicius impulsiuku. |
Ne del mygtuko netobulumo.
Sio kodo esme tame, kad while cikle reiksme i greitai be perstojo sukasi nuo
1iki6, ir kauliuko skaicius priklausys kokia buvo i reiksme mygtuko paspaudimo momentu. |
|
|
|
|
|
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 08, 21:43 |
|
|
|
|
| Iš pradžių padavus maitinimą dega visi 7 LED. Skaičius užsidega tada, kai mygtukas yra atleidžiamas. Jeigu teisingai supratau tai kintamasis i nuo 1 iki 6 sukasi generatoriaus darbiniu dažniu... Ar čia delay_ms(1) atsakingas ? |
|
|
|
|
|
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 09, 08:21 |
|
|
|
|
| PauliusA rašo: |
| Iš pradžių padavus maitinimą dega visi 7 LED. Skaičius užsidega tada, kai mygtukas yra atleidžiamas. Jeigu teisingai supratau tai kintamasis i nuo 1 iki 6 sukasi generatoriaus darbiniu dažniu... Ar čia delay_ms(1) atsakingas ? |
delay reikalingas tam, kad sulėtintų for ciklą. Nes kai ciklas smarkiai sukasi pradeda kaisti valdiklis ir gali sudegti.  |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 09, 08:41 |
|
|
|
|
| specialistas rašo: |
| PauliusA rašo: |
| Iš pradžių padavus maitinimą dega visi 7 LED. Skaičius užsidega tada, kai mygtukas yra atleidžiamas. Jeigu teisingai supratau tai kintamasis i nuo 1 iki 6 sukasi generatoriaus darbiniu dažniu... Ar čia delay_ms(1) atsakingas ? |
delay reikalingas tam, kad sulėtintų for ciklą. Nes kai ciklas smarkiai sukasi pradeda kaisti valdiklis ir gali sudegti.  |
Butu cia pazengusiuju forumas, tai suprastu, kad juokauji, bet kad cia tiek zaliu ir dar kiek ju ateis ateityje per paieska, tai gal geriau tokiu nesamoniu ir nerasineti... |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 09, 15:26 |
|
|
|
|
| specialistas rašo: |
| PauliusA rašo: |
| Iš pradžių padavus maitinimą dega visi 7 LED. Skaičius užsidega tada, kai mygtukas yra atleidžiamas. Jeigu teisingai supratau tai kintamasis i nuo 1 iki 6 sukasi generatoriaus darbiniu dažniu... Ar čia delay_ms(1) atsakingas ? |
delay reikalingas tam, kad sulėtintų for ciklą. Nes kai ciklas smarkiai sukasi pradeda kaisti valdiklis ir gali sudegti.  |
Kaip "specialistui" tai labai jau nevykęs komentaras. |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 16, 11:18 |
|
|
|
|
Atrodo būsiu prisižaides su Fuse bitais... greičiausiai code protect... Nebegaliu nei nuskaityti nei ištrinti irašyto kodo. Pati programa mikrovaldiklyje veikia, jis naudojamas tam tikrame įrenginyje... Bandant ištrinti rašo device erased, bet realiai kodas neišsitrina, įrenginyje toliau sekmingai veikia...
Norėjau paklaust ar yra koks būdas atkurti gamyklinę PIC12F629 konfiguraciją, ar jau su visam procas užsirakino? |
|
|
|
|
|
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 16, 13:08 |
|
|
|
|
| PauliusA rašo: |
| Norėjau paklaust ar yra koks būdas atkurti gamyklinę PIC12F629 konfiguraciją, ar jau su visam procas užsirakino? |
Nedirbau su PIC, bet paprastai mikrovaldikliuose galima viską ištrinti, o tada turėtų leist įrašyt iš naujo. Gal tau reikia kokio high-voltage programatoriaus? |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 16, 21:39 |
|
|
|
|
Programatorius mano tai "Extra PIC". Programavimo metu ant VPP tai atsiranda +13V... Naudoju icprog.
Prisižaidžiau experimentuodamas su OSCCAL, kadangi buvau ištrynes originalią, parsisiunčiau vieną hex kodą kur atseit atstato originalia OSCCAL, ant greičio kaip rašiau neatkreipiau dėmesio kokie fuse sudėti, kaip irašiau tada pamačiau kad buvo ir Code Protect varna uždėta, nuo to viskas ir prasidėjo...
Kas keisčiausia, kad dabar prgramuojant proca rašo kad viskas tvarkingai išsitrina ir "atseit įsirašo", tik pabaigoje kai tikrinasi išmeta 'Verification code error at 0000h" jeigu teisingai atkartojau... |
|
|
|
|
|
 |
 |
Programavimo C kalba pamokėlės pradedantiesiems su PIC12F629 |
Parašytas: 2013 04 16, 22:27 |
|
|
|
|
| Nemanau, kad su fuse bitais gali sugadinti PIC'ą. Net neskaitęs datasheet'o galėjai išmąstyti. kad uždėjus "code protect" bitą "Verification" nepavyks. O dėl tos "osccal" konstantos atstatymo iš savo kuklios patirties galiu pasakyti, kad dariau iš smalsumo eksperimentą su PicKit2 (jis turi konstantos atstatymo funkciją). Atstatytoji nuo gamyklinės skyrėsi per 2 bitus, kokią įtaką tai gali turėti vidinio RC generatoriaus tikslumui nežinau. |
|
|
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
RDR2 Mods
Euro Truck Simulator 2 Mods,
WOT Mods,
Assetto Corsa Rally Mods |
|

|
 |