07-21-2014, 09:06 PM
|
...a što činiš?!
|
|
07-21-2014, 09:53 PM
Quote:.u jednom ovo je njegov poslednji radНе, ово дело waso сам само поновио. Штампана плоча променила. Заштита одбор - SMD. Накнада архива - ВIAS.
(07-21-2014, 07:39 PM)TDA Wrote: Boro, pakuj ga i šalji za Niš! Da znas da hocu! (07-21-2014, 08:03 PM)HomeMadeAudioProject Wrote: many people like that osciloscope! I DON'T !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @gosha Nemam cime da izmerim 2000V! Svi moji instrumenti su do 1000V jer se nikad ne bakcem sa bilo cime vecim od 300-400V. SVI ostali naponi koje sam mogao da merim postoje i tacni su, katodna cev je izgleda OK i radi joj grejanje. Pristup tom delu gde je taj mali coperski trafo i gigantske VN diode je zaj@ban samo tako.... morao bi pola skopa da rasturim da tu pridjem! Jedva se snalazim u njihovim semama ( nekako su mi seme nepregledne, smusene, zbrkane....) a uz to ne znam ni rec Ruskog pa objasnjenja samo poneko nabodem po nekoj logici, inace KATASTROFA..... MAJMUN JE USAO U TENAK!!! Vidim da cu solidno naj***ti sa ovim bacuskom, a kao za inat onaj Tektronix mi je neupotrebljiv za merenja. (07-21-2014, 10:54 PM)boraomega Wrote: Nemam cime da izmerim 2000V!Trebaju ti samo 9 otpormika od 10M, povezes ih sve na red i stavis na vrh pipalice od instrumenta koji ima unutrasnji otpor od 10M (a to su skoro svi danasnji digitalci) i dobices razdelnik 10:1. Sada ce instrument pokazivati 10X manju vrednost sto je u ovom slucaju -200V. Ovde nam nije bitna neka velika tacnost vec vise da ustanovimo da li imamo taj napon. Ja sam za svoje potrebe sklepao jedan takav VN otpornik i dosta me dobro sluzi. Ipak budi oprezan jer su visoki naponi u pitanju, ne mogu ti nauditi mnogo jer su male struje ali ipak mozes doziveti neprijatnosti. A ako se resis mozes ga poslati i za Nis taman da uporedim trafo sa ovim sto je kod mene.
07-22-2014, 05:53 AM
Gosha, ako ti je prevelik problem opravka malog rusa mogu ja sačekati i neku drugu priliku tj neki drugi osciloskop uz moju doplatu, da bude nešto poput acazecevic -evog i cijenom tu oko 100e (ukupno). sve se možemo dogovoriti - nije problem,nemoj da se grizeš zbog mene.
Bože,daj svakome pameti - ni mene ne zaboravi......
07-22-2014, 07:17 AM
(07-22-2014, 05:53 AM)HomeMadeAudioProject Wrote: Gosha, ako ti je prevelik problem opravka malog rusa mogu ja sačekati i neku drugu priliku tj neki drugi osciloskop uz moju doplatu, da bude nešto poput acazecevic -evog i cijenom tu oko 100e (ukupno). sve se možemo dogovoriti - nije problem,nemoj da se grizeš zbog mene. HAMP, jos mi ni jedan nije "uteko" pa nece ni ovaj. A sto se tice tvog predloga ja sam za svaku opciju. Dalje mozemo telefonom.
08-08-2014, 10:16 AM
(This post was last modified: 08-08-2014, 10:20 AM by euronymous.)
Zamena baterije i intervencija na kontaktima na Garmin Forerunner 305.
Jedan kontakt je otpao, pa sam morao da zalemim žicu umesto njega. Na kraju je sve zalepljeno silikonom za šoferšajbne i umotano selotejpom da se silikon lepo osuši. Naravno upaljena je mašina da vidim jesam li uspešno obavio operaciju
"Ako kaniš pobjediti, ne smiješ izgubiti" - Grunf
Radi se radi se ..
![]() Prvo privrsavam T-Ref, pa posle idem na AX-6 .. nek ima zabave ,, uh spalila me vrukjina..
А у руке Мандушића Вука биће свака пушка убојита ...
https://www.youtube.com/user/Marshallov/videos
Pa kad peglaš na ovoj vrućini!
Vidš šta ti se desi, počneš da mešaš Srpski i Makedonski... ![]() Imam brata u Makedoniji koga kad iznerviram zaboravi Srpski jer bolje psuje na Makedonskom... Ako, samo napred!
Face up...make your stand and realise you're living in the golden years!
08-16-2014, 06:51 PM
Aaaa nije na dobro ovo ..nema da mi verujes ali pravio sam kavu i pomesao so sa secer..gotov sam ..
А у руке Мандушића Вука биће свака пушка убојита ...
https://www.youtube.com/user/Marshallov/videos
08-16-2014, 07:10 PM
(08-16-2014, 06:31 PM)Marshall Wrote: Radi se radi se .. OPASAN SI MARSHALL _ O P A S A N ! ! !
Bože,daj svakome pameti - ni mene ne zaboravi......
08-16-2014, 07:11 PM
Pogotovo kad je ovakvo vreme ..koji je gori inat ja ili vreme .. bilo vrucina pa nije moglo da se pegla ili sta god da je .. maaaa jok
А у руке Мандушића Вука биће свака пушка убојита ...
https://www.youtube.com/user/Marshallov/videos
08-16-2014, 08:40 PM
Ekstra izgleda T-ref. Samo napred, lepo ti ide.
08-16-2014, 08:50 PM
Hvala Viktore..kad bude sve ukupno, ponovo pustam slike i video ..
А у руке Мандушића Вука биће свака пушка убојита ...
https://www.youtube.com/user/Marshallov/videos
Pustih u pogon drugu mašinu od 100KVA.
Hvuuuš (brisanje znoja). Baš sam se umorio. Sutra ću je snimiti u radu pa postaviti ovde snimak od ove nove, revidirane i poboljšane (normalno, samo mehanika je revidirana :-) ---------------------------------------------- Predlažem da se napravi neka zona industrijske elektronike na forumu. Može zatrebati. Sasvim solidno sam iskoristio PIC18F4620. Pokrećem jedan servo motor, četiri cilindra, dve power grupe od po 50KVA (2 x broj sinhronizovanih mrežnih perioda + 2 pwm kao nivo snage), motor za ubacivanje poprečne žice, trobojni semafor, displej, tastaturu i RS232 komunikaciju naravno... Očitavam limite ose , senzor za nulovanje i senzor za poprečnu žicu, temperaturu bloka, nivo vode, pedalu, sve stop pečurku, pritisak vazduha. Čitavu mašinu sam napravio pomoću velikog broja potpuno novih i mojih rešenja-dosetki, a najviše sam ponosan na veoma zanimljivu detekciju pneumatskih cilindara. Naime, jednim jedinim preso-prekidačem sa histerezisom od +-0.4bara detektujem sledeće stvari: -gornji položaj sva 4 cilindra (i sve ostalo za sva 4, odnosno za 2 kada je upotrebljena ta opcija), -tok hoda na dole, -ostvarenje nominalne sile na elektrodama za zavarivanje, -tok hoda na gore, -prisustvo tačnog pritiska kao preduslova za ispravan rad (alarm pre pokretanja rada). Naravno sve pojedinačne stavke su praćene sa WDT ili detekcijom stanja, kao i odlaskom u stanje stop sa alarmom i nazivom greške na displeju. Ostalo mi je slobodno još 4 pina na PIC18F4620 i 84% slobodnog fleša. A EEprom je zauzet sa 920 bajta parametara. Praktično 40 grupa sa po 23 parametra po jednoj. Dovoljno od jednog piconje prosečne "snage"... Evo i par komada koda, ako nekog interesuje: Code: /*--------------------------------grupa-parametara jednog proizvoda---------------------------------*/
const char * const message_param[] =
{
"Brz.Vuce Pr:", /* 0 */ //brzina vuce napred, mm/sek, max 500mm.
"Pred-mera Pr:", /* 1 */ //polozaj centra prve zice u odnosu na pocetak uzduznih zica
"Izbaciv. Pr:", /* 2 */ //rastojanje koje ce preci okvir u svrhu izbacivanja ili ostavljanja na poziciji
"Izbor para Pr:", /* 3 */ //izbor parova pow grupa i elektroda, levi ili oba
"Br.kor. F1 Pr:", /* 4 */ //broj koraka u prvoj fazi, uvek jedan manje od ukupnog, prva zica nije korak !!!
"Duz.kor.F1 Pr:", /* 5 */ //duzina koraka u prvoj fazi u mm.
"Peri.1 F1 Pr:", /* 6 */ //vreme zavarivanja leve (1.) power grupe, u mreznim periodama
"Snaga1 F1 Pr:", /* 7 */ //snaga leve power grupe (50KVA), u %, solidno linearizovana (TCA785, 2K2 pin 11)
"Peri.2 F1 Pr:", /* 8 */ //vreme zavarivanja desne (2.) power grupe, u mreznim periodama
"Snaga2 F1 Pr:", /* 9 */ //snaga desne power grupe, u %
"Br.kor. F2 Pr:", /*10 */ //kao i kod prve faze procesa, samo je ovde druga faza
"Duz.kor.F2 Pr:", /*11 */
"Peri.1 F2 Pr:", /*12 */
"Snaga1 F2 Pr:", /*13 */
"Peri.2 F2 Pr:", /*14 */
"Snaga2 F2 Pr:", /*15 */
"Br.kor. F3 Pr:", /*16 */ //kao i kod druge faze procesa, samo je ovde treca faza
"Duz.kor.F3 Pr:", /*17 */
"Peri.1 F3 Pr:", /*18 */
"Snaga1 F3 Pr:", /*19 */
"Peri.2 F3 Pr:", /*20 */
"Snaga2 F3 Pr:", /*21 */
"Opcija Pr:" /*22 +1 = velic_grupe = ukupni broj parametara u jednoj grupi. */
/*
* param. 22 je izbor opcije rada, tj. 0=automatski povratak rama, 1=cekaj pedalu
* za povratak, 2=simulacija procesa bez zavarivanja i ubacivanja zice,
* SVE TRI OPCIJE(0,1,2) VAZE ZA OKRUGLU MERU KORAKA U mm !!!
* Kada je u pitanju jedan jedini izuzetak sa korakom 52,5mm onda:
* 3=automatski povratak rama, 4=cekaj pedalu za povratak, 2=simulacija procesa bez
* zavarivanja i ubacivanja zice,
* SVE TRI OPCIJE (3,4,5) SU SA UVECANJEM KORAKA ZA +0,5mm na unesenu meru koraka !!!
* Saznao sam za postojanje neokrugle mere tek po zavrsenom projektu! Nije vredno truda
* pisati iznova ceo program zbog jednog izuzetka.
* Novi izuzeci su sve resetke!!! Kod njih je fiksna pred mera 88,5mm.
* Za tu svrhu u param[opcija] su dodate stavke 6,7 i 8. 6=resetke sa autom. povratkom,
* 7=resetke, cekaj pedalu za povratak, 8=resetke, simulacija, cekaj pedalu za povratak.
*/
};
//--------------------------jedinice u kojima su parametri, drugi red parametara-----------------
const char * const message_jedinice[] =
{
" x10 mm/sek", /* 0 */
" mm. ", /* 1 */
"x10mm.", /* 2 */
" 1=levi 2=oba",/* 3 */
" koraka", /* 4 */
" mm. ", /* 5 */
" perioda", /* 6 */
" % ", /* 7 */
" perioda", /* 8 */
" % ", /* 9 */
" koraka", /*10 */
" mm. ", /*11 */
" perioda", /*12 */
" % ", /*13 */
" perioda", /*14 */
" % ", /*15 */
" koraka", /*16 */
" mm. ", /*17 */
" perioda", /*18 */
" % ", /*19 */
" perioda", /*20 */
" % ", /*21 */
" po uputstvu" /*22 +1= velic_grupe = ukupni broj parametara u jednoj grupi. */
};
#define velic_grupe 23
/*------------------------------------------------------------------------------*/
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
const dwn_limit[]={ 1, 62, 10, 1, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0};
const up_limit[]= { 50,250,100, 2, 25, 70, 50,100, 50,100, 25, 70, 50,100, 50,100, 25, 70, 50,100, 50,100, 8};
/*gornji i donji limiti zadavanja param., broj elemenata = velic_grupe */
/* postoji i kontrola mesta zapete, broja decimala i predznaka, videti u "beliscanka.c" ili ranije */
#define broj_grupa 40 /* max 1009 byte eeproma, velic_grupe x broj_grupa */
//trenutno 920 parametara velicine BYTE
/*--------------------------------------------------------------*/
UBYTE param[velic_grupe];/* velic_grupe */ //array sadrzaja trenutno koriscene grupe, ucitana iz EE, u main();
/*------------------------------------------------------------------------------------------*/
/*-----------ofset vezan za msg_param, olaksano uzimanje konkr. parametra----*/
const
//---------------zajednicki----------------------------------------------------
brz_vuce=0,
predmera=1,
izbaci=2,
parovi=3,
//---------------prva faza procesa--------------------------------------------
br_korF1=4,
duz_korF1=5,
per1F1=6,
pow1F1=7,
per2F1=8,
pow2F1=9,
//---------------druga faza procesa--------------------------------------------
br_korF2=10,
duz_korF2=11,
per1F2=12,
pow1F2=13,
per2F2=14,
pow2F2=15,
//---------------treca faza procesa--------------------------------------------
br_korF3=16,
duz_korF3=17,
per1F3=18,
pow1F3=19,
per2F3=20,
pow2F3=21,
//--------------pedala za povratak okvira kod rucnog vadjenja komada i simulaciju proc------------
opcija=22;
/*ima ih koliko i elemenata grupe */
/* npr: param[parovi]; */
/*------------------------------------------------------------------------------------------*/
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
union //brojac koji se brise
{
struct {
UWORD brojac;
}cuvar_br;
UBYTE var_br[2];
}brojac_vars;
//-----------------------------------------
union //brojac koji se ne brise
{
struct {
UWORD abrojac_l;
UWORD abrojac_h;
}acuvar_br;
UBYTE avar_br[4];
}abrojac_vars;
/*-------------------------------------------------------------------------------------------*/
/*===========================================================================================*/
/*-------------------------------------------------------------------------------------------*/
void processor_init(void) //konfiguracija pinova i SFR
{
/*--------------------------------------------------------------------------*/
TRISA = 0b11111111;
TRISB = 0b11111111;
TRISC = 0b10010000;/* u slucaju koriscenja hardverskog i2c, obavezno postaviti RC3,RC4 kao ulaze */
TRISD = 0b00000000;
TRISE = 0b00000111;
/*------------------------ovo je slucaj 24in/out, 4-8-12-20 in, 20-12-8-4 out---------------------*/
/*---------------------------------------------------------------------------*/
//TRISA = 0b11111111; //radi sa i2c ekspanderima za sve izlaze
//TRISB = 0b11111111;
//TRISC = 0b11111000;/* u slucaju koriscenja hardverskog i2c, obavezno postaviti RC3,RC4 kao ulaze */
//TRISD = 0b11111111;/* kada se koriste pwm1 i pwm2, RC1 i RC2 postaviti kao izlaze. */
//TRISE = 0b00000111;
/*-----------------------ovo je slucaj sa i2c expanderima, 54 in/out, 22-30 in, 32-24 out----------*/
/*-----------------------------------------------------------------------------*/
ADCON1 = 0b00001111; /* adc off */ //4620
CMCON = 0b00000111; /* comparators off */ //4620
/*----------------------------------------------------------------------------- */
/* pwm 1 i/ili 2 , za 10 bita, res 0-1000 */
//PR2 = 0xFF;
//T2CON = 0b00000101;
//CCP1CON = 0b00001100; //pwm1
//CCP2CON = 0b00001100; //pwm2
/*-----------------------------------------------------------------------------*/
/* pwm 1 i/ili 2 , za 8 bita(res 0-100),T2CON,b0,b1; ako je preskaler 11=6,25KHz, 01=25KHz, 00=99KHz */
PR2 = 99;
T2CON = 0b00000101;// trenutno 25KHz
CCP1CON = 0b00001100; //pwm1
CCP2CON = 0b00001100; //pwm2
/*------------------------------------------------------------------------------*/
RCON = 0; /* Compatibility mode. Priority disabled. interapti */
T0CON = 0b00000010; /* prescaler 1:8, int clk, disabled */
INTCON = 0b10100000; /* GIE,TMR0IE = 1 */
//timer1
// PIR1 = 0b00000000; /* (0)TMR1IF */
// PIE1 = 0b00000001; /* (0)TMR1IE */
// IPR1 = 0b00000001; /* (0)TMR1IP */
// T1CON = 0b00000000; /* */
/*------------------------------------------------------------------------------*/
//setovanje svih in/out u nisko stanje
PORTA=0x00; PORTB=0x00; PORTC=0x00; PORTD=0x00; PORTE=0x00;
CCPR1L=0; CCPR2L=0;
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------- INTERRUPT HANDLER -----------------------------------------------*/
bit timeout; //globalne var., vezane za isr
bit timer0_blink;
UWORD timer1ms,timer10ms,timer100ms,Timer0H,Timer0L;
void interrupt int_hand (void)
{
/*----------------- merenje vremena, wdt, ili pulse gen..---------*/
/* za 1ms H=0xFE,L=0xCA tj.65226 */ //ako se unosi kao fiksan
/* za 10mS H=0xF3,L=0xF2 tj.62450 */
/* za 100mS H=0x86,L=0xC4 tj.34500 */....I na primer ono oko cilindara... Code: //////////////////end switch master state masine///////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
if(n_vode)err_no=err_voda; //nedovoljan nivo vode za hladjenje
if(esc_test())err_no=err_ciklus; //stop esc tasterom
if(not_aus)err_no=err_n_aus; //stop pecurkom
///////////////////////////////////////////////////////////////////////////////
//////////////////////////operativni task//////////////////////////////////////
switch(operate_seq_no){
case 0: //stop,pasivno stanje
cilindar1par=0; cilindar2par=0;
enable1=0; enable2=0;
break;
//-------------------------------------------------------------
case 1: //cilindri,polazak na dole, kontrola pada pritiska, dokaz kretanja.
if(operate_jump){
calculate_tmr0(5); //10mS za TMR0
timer10ms=50; //500mS WDT
switch(param[parovi]){ //izbor parova cilindara prema parametrima proizvoda
case 1:
cilindar1par=1; cilindar2par=0;
break;
case 2:
cilindar1par=1; cilindar2par=1;
break;
}
timeout=0; //start WDT
operate_jump=0;
}
else{
if(timeout)err_no=err_p_vazd;
if(p_vazduha){
operate_jump=1;operate_seq_no=2;
}
}
break;
//---------------------------------------------------------------
case 2: //cilindri, predstezanje, kontrola postignutog pritiska radi preciznog zavara (presoprekidac)
if(operate_jump){
calculate_tmr0(5); //10mS za TMR0
timer10ms=50; //500mS WDT
timeout=0; //start WDT
operate_jump=0;
}
else{
if(timeout)err_no=err_p_vazd;
if(!p_vazduha){ //zavrseno predstezanje, pritisak ok.
//najbrzi metod, realno vreme ostvarenja nominalnog pritiska sa krajnje minimalnim cekanjem
if((param[opcija]==2)||(param[opcija]==5)||(param[opcija]==8)){
operate_jump=1;operate_seq_no=4; //preskoci zavar ako je simulacija
}
else{ //inace zavari
operate_jump=1;operate_seq_no=3;
}
}
}
break;
//-----------------------------------------------------------------
case 3: //zavari
if(operate_jump){
switch(seq_no){ //ucitavanje vremena zavara konkretne faze procesa
case 3:
temp_per1=param[per1F1]; temp_per2=param[per2F1]; //broj perioda obe power grupe, faza 1.
break;
case 4:
temp_per1=param[per1F2]; temp_per2=param[per2F2]; //broj perioda obe power grupe, faza 2.
break;
case 5:
temp_per1=param[per1F3]; temp_per2=param[per2F3]; //broj perioda obe power grupe, faza 3.
break;
case 6: //slucaj zavara poslednje zice
temp_per1=param[per1F3]; temp_per2=param[per2F3]; //broj perioda obe power grupe, faza 3.
break;
}
RS_jump=1; RSseq_no=1; //start sync+brojanje_per taska, 1.power grupe, 50KVA
ST_jump=1; STseq_no=1; //start sync+brojanje_per taska, 2.power grupe, 50KVA
operate_jump=0;
}
else{
if((RSseq_no==3)&&(STseq_no==3)){ // oba sync taska zavrsili?
RSseq_no=0;STseq_no=0; //vracanje RS i ST taskova u pasivno stanje
operate_jump=1;operate_seq_no=4;
}
}
break;
//---------------------------------------------------------------
case 4: //digni cilindre, kontrola pada pritiska, dokaz kretanja.
if(operate_jump){ //i eventualno ubaci sledecu zicu, optimizacija vremena masine
calculate_tmr0(5); //10mS za TMR0
timer10ms=200; //1000mS WDT, 6 pokusaja za zicu.
cilindar1par=0; cilindar2par=0;
vazduh_flag=0;zica_flag=0;
delay_ms(50);
if((param[opcija]==2)||(param[opcija]==5)||(param[opcija]==8)||(end_flag))zica_flag=1;
//ako je simulacija ili jedan zavar, omoguci nastavak kod simulacije ili samo jednog zavara
else{
if((!pedala)&&(!pedala_flag))motorce=0;
else motorce=1; //inace ubaci zicu
}
timeout=0; //start WDT
operate_jump=0;
}
else{
if(timeout){
if((param[opcija]==2)||(param[opcija]==5)||(param[opcija]==8)||(end_flag));
//ako je simulacija ili samo jedan zavar
else{
if(senz_zice)l_err_no=l_err_zica; //inace wdt prolaza zice
}
}
if(!senz_zice){motorce=0;zica_flag=1;} //prosla zica?
//if(p_vazduha)
vazduh_flag=1; //krenuli cilindri
if(l_err_no==l_err_zica){
operate_jump=1;operate_seq_no=5; //idi na pauzu
}
if((!pedala_flag)&&(!pedala)){
operate_jump=1;operate_seq_no=5; //idi na pauzu
}
if((vazduh_flag)&&(zica_flag)){ //ispunjena oba uslova
if((!temp_br_kor)||(!temp_duz)){
vazduh_flag=0;zica_flag=0;
operate_jump=1;operate_seq_no=8; //kod poslednjeg zavara, bez povlacenja
}
else{
vazduh_flag=0;zica_flag=0;
operate_jump=1;operate_seq_no=7; //inace povuci
}
}
}
break;
//--------------------------------------------------------------------
case 5: //pauza ili l_err
if(operate_jump){
motorce=0;
clr_line2();
lcd_goto(line2);
if(!pedala) lcd_puts("Pauza ");
if(l_err_no==l_err_zica)lcd_puts("Pauza, ZICA!!! ");
red=1;
operate_jump=0;
}
else{
if(!pedala)operate_seq_no=5; //cekaj pustenu
else operate_seq_no=6; //idi na cekanje stisnute
}
break;
//-----------------------------------------------------------------
case 6:
if(pedala)operate_seq_no=6;
else{
clr_line2(); red=0;l_err_no=0; //pocisti upozorenja
pedala_flag=1; //bila stisnuta za izlazak
operate_jump=1;operate_seq_no=4; //pokusaj opet zicu
}
break;
//---------------------------------------------------------------------
case 7: //povuci sledeci korak , servo motor.
if(operate_jump){
delay_ms(350);
dir=napred; //smer vuce, obavezno zbog postojanja povratka
servo_jump=1;servo_seq_no=1; //start servo taska
operate_jump=0;
}
else{
if(servo_seq_no==2){ //servo zavrsio?
servo_jump=0;servo_seq_no=0; //stavljanje servo taska u pasivno stanje
operate_jump=1;operate_seq_no=8; //zavrsio servo, sledece.
}
}
break;
//------------------------------------------------------------------
case 8: //verifikacija da su cilindri gore, pritiskom.
if(operate_jump){
calculate_tmr0(5); //10mS za TMR0
timer10ms=50; //500mS WDT
timeout=0; //start WDT
operate_jump=0;
}
else{
if(timeout)err_no=err_p_vazd;
if(!p_vazduha){ //gore su, pritisak ok.
operate_jump=1;operate_seq_no=9;
}
}
break;
//----------------------------------------------------------------------
case 9: //brojanje koraka doticne faze, eventualno ponavljanje.
if(operate_jump){
pedala_flag=0;
if(temp_br_kor>0)temp_br_kor--;
operate_jump=0;
}
else{
if(temp_br_kor<1){
operate_jump=0;operate_seq_no=10; //ako nema vise
}
else{
operate_jump=1;operate_seq_no=1; //izvrsi preostale korake
}
}
break;
//-----------------------------------------------------------------------
case 10: //indikator zavrsetka doticne faze procesa, pasivno stanje.
cilindar1par=0; cilindar2par=0;
enable1=0; enable2=0;
break;
}///////////////////////end operativni task///////////////////////////////////
08-19-2014, 10:13 AM
prilicno skladan kod i iskomentarisan sto mi se svidja, mada bas ne volim da programiram al ajd
![]() na PIC se ne vracam, ne svidja mi se(stvar ukusa) // jel moze pojedinacan pin da se postavi kao ulazni ili izlazni ili mora ceo registar? mosfete koje kacis na pic su LogicLevel(4.5V)? // da li bi odgovarao recmo http://www.ti.com/product/csd18502kcs i obavezno sto detaljnije snimi masinu u radu, da se vide detalji
08-19-2014, 11:04 AM
Kod Pic se svaki pin pojedinačno može postaviti kao In ili Out, ili se to u "letu" tokom programa raditi, jednostavnom asm naredbom.
Trudim se, i ako nisam programer inicijalno, već priučen iz razloga nužne potrebe. Razvio sam neke sopstvene metode koji su se pokazali odlično u praksi. Verujem da bi profesionalni programeri, koji su učili tu oblast, verovatno mogli urednije, čitkije i komprimovanije pisati... Mosfeti koje koristim su standardni sa gate tresshold reda 4-6V, samo što između imam opto-posrednik, pa mogu bilo koji mosfet ili IGBT upotrebiti, naravno i P tipa kad mi zatreba. Najčešće koristim IRFZ44N koji mi obezbeđuje najbolje performanse za najmanje novca, a kada mi zatreba prostora onda neki od HUFxxxx i TO-252. Najmanje tri puta je jevtiniji od onog koji si naveo, i to kod nas sa sve PDV. Što se tiče finih detalja na snimcima mašine: iskreno, ne pada mi na pamet da ih snimim. Darežljiv jesam, ali ne baš u toj meri :-)
>> jel moze pojedinacan pin da se postavi kao ulazni ili izlazni ili mora ceo registar?
Svaki pin moze nezavisno da se podesava, ne mora ceo registar. U ASM se to radi preko bit maske, u C (XC) imaju naredbe koje to rade i u sustini posle prevodjenja napravi isti masinski code kao da je pisano u ASM (to je ono sto kazu "jezgro optimizovano za C"). |
|
« Next Oldest | Next Newest »
|
Users browsing this thread: 3 Guest(s)


Штампана плоча променила. Заштита одбор - SMD. Накнада архива - ВIAS.

