Sari la conținut

Postări Recomandate

  • 4 years later...
  • Răspunsuri 49
  • Created
  • Ultimul Răspuns

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Salutari ,tot o problema de genul asta am si eu si anume sa compilez un fisier asm ca sa obtin executabilul adica hexul.Este vorba de un asm al unui invertor si eu nu stiu sa compilez fisiere asm.Deci ,daca ma puteti ajuta ,sa-mi compilati acest fisier ,v-as ramane indatorat.

 

oscilator extern cuart 6 mhz

 

 

 

 

fisier.txt

Link spre post
Distribuie pe alte site-uri

Nu reu?esc :

 

Error - section '.cinit' can not fit the section. Section '.cinit' length=0x00000004

Errors : 1

Editat de Gabix
Link spre post
Distribuie pe alte site-uri

Buuun... La ?nceput am avut aceea?i probleme ?i cu al doilea fi?ier dar p?n? la urm? am reu?it :

----------------------------------------------------------------------

Release build of project `F:\C\Electronica\Proiecte PIC\Invertor\Invertor.mcp' succeeded.

Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39

Wed May 20 20:36:14 2015

----------------------------------------------------------------------

BUILD SUCCEEDED

 

Ce am f?cut : Se pare c? programul era prea lung ?i nu ?nc?pea ?n memorie (cred). A?a c? am scos dou? instruc?iuni NOP (nici o opera?ie). Instruc?iunile NOP erau imediat dup? o instruc?iune de salt GO TO (du-te la...) aflat? la adresa vectorului de ?ntrerupere (0x004), a?a c? nu am stricat nimic (cred). ?n orice alt? parte din program instruc?iunile NOP produc temporiz?ri elementare de un ciclu instruc?iune. De asemeni nu exista o instruc?iune ORG 0x000 (adresa de origine a programului).

Alt lucru : Programul con?ine o directiv? pentru generarea fi?ierului .HEX ?n format INHX8M. Nu ?tiu ce ?nseamn? ?i nici nu-mi bat capul s? aflu. Eu am folosit mereu INHX32, care este implicit. Am asamblat ?n ambele formate.

 

A?a c? p?n? la urm? ave?i patru variante de .HEX.

Trebuie s? schimba?i extensiile fi?ierelor din .txt ?n .HEX c? nu m? l?sa s? le ?ncarc.

Sper s? v? foloseasc? ?i invertorul s? ?nu v? sar? ?n fa???. S? m? ?ine?i la curent !

Invertor_6 MHz_INHX8M.txt

Invertor_6 MHz_INHX32.txt

Invertor_20 MHz_INHX8M.txt

Invertor_20 MHz_INHX32.txt

Link spre post
Distribuie pe alte site-uri

mersi Gabix pentru ajutor ,am verificat toate variantele ,merg doar cele la 20 mhz ,frecventa de functionare este mai mica decat hexul original ,de 6.1 khz in loc de 6.45 khz.Nu cred ca conteaza ,insa o sa fac un prototip de invertor la putere mica ,50-100W  si vad concret cum merge.

Scopul meu era sa ridic frecventa la cel putin 16 khz insa s-a dovedit ca ma depaseste .Cu mult.

Link spre post
Distribuie pe alte site-uri

Microcontrolerul comand? direct finalii, sau ce ave?i acolo ? ( La ?comuta?ie? nu prea m? pricep. ) Dac? da, nu-mi place. ?Analogicul? ??i are rostul lui.

C?t despre ridicarea frecven?ei, dac? este din soft, da?i detalii. Nu prea am timp, dar cine ?tie, poate identific?m buc??ica de cod care se ocup? de asta. Dac? nu, c??tig?m experien??.

Link spre post
Distribuie pe alte site-uri

multumesc mult pentru interesul aratat,dar nu merita efortul ,am si alte variante de realizare a unui invertor sinus pur ,cu attiny13 ,atmega 8, PIC16F684 si EG 8010.

In afara de cea cu PIC16F684 ,pe toate celelalte le exploatez in prezent ,in invertoarele mele.Singura diferenta importanta intre acestea este ca EG8010 asigura stabilizarea tensiunii de 220 V.Si  cea cu PIC16F72 oferea aceasta posibilitate si in plus ,era usor de procurat,fata de 8010,care trebuie sa astept o luna sa vina din china.

Doream sa folosesc modulatorul cu F72 ,intr-un invertor cu traf pe 50 Hz ,deci fara ridicare de tensiune in prealabil,cum este la variantele cu traf pe ferita ,si in acest caz ,trebuie stabilizare oferita de acest modul.

Dar daca nu se poate cu pic ,merg pe EG 8010 si gata ,am un stoc suficient.

Link spre post
Distribuie pe alte site-uri

Este mai usor de facut de la zero un program in C, decat de modificat unul facut in asamblare si necomentat.

Tahmid are portiuni de cod in care prezinta partea de pwm si partea de feedback la el pe blog.

Trebuiesc doar unite cele doua parti si eventual adaugate alte functii pentru UPS.

Link spre post
Distribuie pe alte site-uri

@Gabix,n-ai pentru ce , prima poza este simplificata de mine ,functioneaza asa cum am mentionat acolo.La FEED BACK este secundarul unui traf micut ,alimentat din tensiunea de iesire a invertorului.In functie de tensiunea aplicata in pin 2 ,se observa pe osciloscop modificarea factorului de umplere,care e maxim la tensiunea minima.

In pin 3 se aplica tensiunea bateriei prin acel divizor,pentru a se opri la descarcarea acesteia.Celelalte intrari (4,5,6,7) le-am pus la masa .Probabil ca bucatile de soft care se refera la aceste intrari ,ar putea fi eliminate,habar n-am .insa interes prezinta doar cele doua din pin 2 si 3.

 

@cristi7521,pai tocmai partea de feed back e cea mai importanta,dar pe mine ma depaseste .

Editat de nel65
Link spre post
Distribuie pe alte site-uri

Daca nu e graba poate reusim sa punem la punct si partea de feedback cu 16F684 (sau cu alt microcontroller). Eu nu prea am timp liber, o sa incerc doar sa unesc portiunile de cod, sa simulez si poate faceti dvs teste practice.

Link spre post
Distribuie pe alte site-uri

nu e nicio graba ,pentru F684 exista codul c ,l-am incercat ,merge perfect dar nu are feedback

 

http://tahmidmc.blogspot.ro/2013/02/demystifying-use-of-table-pointer-in.html

 

//Here is the code:
 
unsigned char sin_table[32]={0,25,49,73,96,118,137,
159,177,193,208,220,231,239,245,249,250,249,245,
239,231,220,208,193,177,159,137,118,96,73,49,25};
 
 
unsigned int TBL_POINTER_NEW, TBL_POINTER_OLD, TBL_POINTER_SHIFT, SET_FREQ;
unsigned int TBL_temp;
unsigned char DUTY_CYCLE;
 
void interrupt(){
if (TMR2IF_bit == 1){
TBL_POINTER_NEW = TBL_POINTER_OLD + SET_FREQ;
if (TBL_POINTER_NEW < TBL_POINTER_OLD){
CCP1CON.P1M1 = ~CCP1CON.P1M1; //Reverse direction of full-bridge
}
TBL_POINTER_SHIFT = TBL_POINTER_NEW >> 11;
DUTY_CYCLE = TBL_POINTER_SHIFT;
CCPR1L = sin_table[DUTY_CYCLE];
TBL_POINTER_OLD = TBL_POINTER_NEW;
TMR2IF_bit = 0;
}
}
 
void main() {
SET_FREQ = 410;
TBL_POINTER_SHIFT = 0;
TBL_POINTER_NEW = 0;
TBL_POINTER_OLD = 0;
DUTY_CYCLE = 0;
ANSEL = 0; //Disable ADC
CMCON0 = 7; //Disable Comparator
TRISC = 0x3F;
CCP1CON = 0x4C;
TMR2IF_bit = 0;
T2CON = 4; //TMR2 on, prescaler and postscaler 1:1
while (TMR2IF_bit == 0);
TMR2IF_bit = 0;
TRISC = 0;
TMR2IE_bit = 1;
GIE_bit = 1;
PEIE_bit = 1;
 
while(1);
}
post-2167-0-57425500-1432455313_thumb.png
 
post-2167-0-93585600-1432455339_thumb.png
 
 
Dupa cum se observa ,tranzistorii de sus sunt comutati cu 50 hz,eu o sa incerc sa comut laterala din stanga cu 50 hz ,QA si QB .Pe mediana QC-QD  urmeaza sa plasez filtrul de iesire LC.Puntea H alimentata cu tensiune mare ,+340V.
 
 
LE
Poate ar trebui deschis topic nou din moment ce schimbam tema topicului ,avand in vedere ca pentru acest pic avem deja codul c ?
Editat de nel65
Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    Nici un utilizator înregistrat nu vede această pagină.




×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock