Fórum témák
- • Mikrohullámú sütő javítás, magnetron csere, stb.
- • Villanyszerelés
- • Számítógép hiba, de mi a probléma?
- • Sütő javítás
- • DCF77 vevő
- • Vicces - mókás történetek
- • Erősítő mindig és mindig
- • Digitális óra
- • Felajánlás, azaz ingyen elvihető
- • Mosógép vezérlők és általános problémáik
- • TDA7294 végerősítő
- • Aggregátorról táplált klímaberendezés lágyindítása
- • Elfogadnám, ha ingyen elvihető
- • Klíma szervizelés, javítás
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Autóelektronika
- • Hibrid erősítő
- • Dobozolási technikák, műszerdobozok
- • Mosogatógép hiba
- • Alternativ HE találkozó(k)
- • Riasztószerelés tapasztalatok, ötletek (kizárólag haladóknak)
- • Toroid transzformátor
- • sPlan áramkörtervező program
- • Kombikazán működési hiba
- • Adatlapot keresek
- • Elektromos távirányítós kapunyitó
- • Borhűtő vezérlő panel
- • LCD monitor probléma
- • Rendelés külföldről (eBay - Paypal)
- • Szivattyú (vízszint) vezérlés javítás
- • VF2 végerősítő
- • MIG/MAG/Co2 hegesztő készülékek házilag
- • Szobatermosztát bekötése
- • Forrasztási 1×1 forrasztástechnikai miértek
- • DVB-S Műholdas digitális TV problémák
- • Orsós magnók
- • Analóg oszcilloszkóp javítása
- • V-FET és SIT erősítő kapcsolások
- • Nagyfeszültségű tápegység
- • PM129A alapműszer
- • Kutya macska (vad) riasztó
- • Triak működése
- • Léptetőmotorok (vezérlése)
- • Eredményjelző
- • LED-es index
- • Frekvenciaváltó
- • Aktív USB kábel készítése
- • Rádió javítás
- • Li-Po - Li-ion akkumulátor és töltője
- • TV hiba, mi a megoldás?
- • Szárítógép problémák
- • Kazettás magnó (deck) javítása
- • Sprint-Layout NYÁK-tervező
- • Műhelyünk felszerelése, szerszámai
- • Sztereó erősítő olcsón
» Több friss téma
|
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Ezt mire érted?
Így elsőre tök jónak gondolom a megoldásom, de ettől még lehet géz
Más:
Uraim olyan kérdésem lenne, hogy van egy rohadt nagy tömböm ami így néz ki:
//A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
static unsigned char ABC[40][7] ={{0b00000,//A
0b01110,
0b10001,
0b10001,
0b11111,
0b10001,
0b10001},
{0b00000,//B
0b11110,
0b10001,
0b11110,
0b10001,
0b10001,
0b11110}, ...};
P18F684-es chip-el dolgozom aminek csak 128byte adatmemóriája van.
A kérdésem az lenne, hogy van e mód egy 280byte-os területű tömb használatára?
Vagy, ha ennek esélye nem sok, milyen módon tudnám kikerülni, hogy ne foglaljon le ekkora területet?
Vagy egy hatékonyabb megoldás elmélete is érdekelhet.
WandClock órám programján dolgozom amelyhez egy rugalmasabb alapot akarok készíteni.
Előre is köszi...
ui: most egy switch() elágazással oldottam meg, de ez véleményem szerint nem hatékony megoldás.
Szia!
Egyszerű. Tedd a programmemóriába.
Ahhoz pedig elég 3 betű: ROM. Ezt írd a deklarációnál pl. a "static" mellé. Ezután a programmemóriába fordítja a konstansokat. Ha jól emlékszem legalábbis...
main.c; 37.12 missing basic type; int assumed
Error [314] main.c; 37.12 ";" expected
Hibát dob nekem rá sajnos.
Így írtam be:
static ram unsigned char ABC[40][7] ={{0b00000,//A...stb
Milyen környezetben is írtad?
Mi a fordító tipusa?
Egyébként nem ram, rom.
De lehet elírtam. Sőt. Biztos, bocsánat.
A romot felejsd el. A static elé írd hogy "const". A hozzászólás módosítva: Júl 13, 2014
Ohh, bocs az tényleg lemaradt. MPLAB és próbáltam rom-ot is és ugyan úgy hiba jön.
Így is próbáltam:
const rom unsigned char ABC[40][7]
static rom unsigned char ABC[40][7]
"static const rom unsigned char ... "
Ugyan az a hiba 
MPLAB Hi-Tech 10-12-16 a fordító..
Köszönöm jó irányba mutattál ezer hálám 
A jó megoldás:
static const unsigned char
A hozzászólás módosítva: Júl 13, 2014
Na, csak hogy össze legyél zavarodva, így a helyes:
static const rom unsigned char ...
Bár ez lehet hogy a Te fordítódnál nem lesz jó. A hozzászólás módosítva: Júl 13, 2014
Na a végén csak sikerült megoldani.
Sziasztok.
Meg tudná mondani valaki, mit felejtek ki? 12f683 ADC-t próbálnám, de vagy gyújtás nincs, vagy benzin, mert nem indul. Köszönöm előre is.
int adc=0;
TRISIO=0;
TRISIObits.TRISIO4=1;
ANSELbits.ANS3=1;
ADCON0bits.ADFM=1;
ADCON0bits.VCFG=0;
ANSELbits.ADCS0=1;
ANSELbits.ADCS1=0;
ANSELbits.ADCS2=1;
while(1)
{
ADCON0bits.ADON=1;
_delay(10000);
ADCON0bits.GO=1;
while(ADCON0bits.GO==1){};
adc=(ADRESH<<8)+ADRESL;
if (adc>512)
GPIObits.GP2=1;
else
GPIObits.GP2=0;
}
Bocs, megtaláltam.
ADCON0/Analog Channel Select bits maradt ki.
A hozzászólás módosítva: Júl 14, 2014
Ugyan azt csinálja (,ha el nem írtam valamit)... De érdemes megnézni a fordított kód hosszát és hatékonyságát. A PIC16F -eken nincs több bites léptetés, így a (bitek>>i) önmagában egy ciklus. Visszafelé:
char i;
char bitek = 0b00011000;
i=8;
do
{
if (bitek & 0x80)
{
printf("egyes\n"); // ide jöhet a portra írás
}else
{
printf("nulla\n");
}
bitek <<= 1;
} while (--i);
A hozzászólás módosítva: Júl 14, 2014
Köszi ezt majd kicsit átnyálazom..
(#) |
Baxi hozzászólása |
Júl 15, 2014 |
 |
/ |
 |
|
Hi Mesterek!
Az lenne a kérdésem hogy 16F690-nél az AD már 1,2V-nál túlcsordul, ez normális? Ugyanaz ha belső illetve külső vref-et használok.
Úgy használom hogy a AD-nak az értékét rakom a pwm-be, feszosztóval megoldottam a hibát, de azért "idegesít" dolog. Valószínű a prg hiba?
Debugolni nem tudom mert kifagy mihelyst "online-ba" akarok menni a pk2-vel  .
Majdnem biztos, hogy hiba van a programban, de látni kellene.
Ez lenne az: list p=16f690
#include p16f690.inc
CBLOCK 0x40
EREDMENYH,EREDMENYL
ENDC
ORG 3
;=============================PORT BEALLITAS=============================
BCF STATUS,RP0
BSF STATUS,RP1 ;Bank 2
MOVLW 00000001B
MOVWF ANSEL ;SET digital I/O; RA0=ANS0=IN
BSF STATUS,RP0
BCF STATUS,RP1 ;BANK1
MOVLW 00000001B
MOVWF TRISA
CLRF TRISC ;Init PORTC=OUT
BCF STATUS,RP0
BCF STATUS,RP1; BANK0
CLRF PORTC ;and set 0 RC<0:7>
MOVLW 00000001B
MOVFW PORTA; PORTA TÖRLÉSE
BSF STATUS,RP0
BCF STATUS,RP1 ;BANK1
MOVLW 00000000B ;A/D RC clock
MOVWF ADCON1 ;
BCF STATUS,RP0
BCF STATUS,RP1; BANK0
MOVLW 10000001B ;Right, Vdd Vref, AN0
MOVWF ADCON0
;============================PWM BEÁLLÍTÁS==============================
CLRF CCP1CON ; CCP Module is off
CLRF TMR2 ; Clear Timer2
MOVLW 11111111B ; BIT=3:0/XXX
MOVWF PR2 ;7:OSFIF=OSC FAIL;C2IF=C2 INT FALAG;C1IF=C1 INT FLAG;EEIF;EE WRITE COMLITE FALG
CLRF INTCON ; Disable interrupts and clear T0IF
CLRF PIE1 ; Disable peripheral interrupts;BT1=TMR2IE: TMR2=PR2 MEGEGYEZIK, FLAG,BIT
BCF STATUS,RP0
BCF STATUS,RP1; BANK0
CLRF PIR1 ; Clear peripheral interrupts Flags
MOVLW 01001100B ; bit:<7:6>=P1D=RC2,<5:4>: 2LSbs of Duty cycle = 10bit, BIT:<4:0>=PWM MOD BEÁLLÍTÁSA, DUAL, QUAD STB
MOVWF CCP1CON
MOVLW 00000000B ; <0:1>00=4Khz;01=1khz;10=250Hz;11=120Hz
MOVWF T2CON ; TMR2 BEALLITÁSA
BSF PIE1,TMR2IE
BSF T2CON,TMR2ON ; Timer2 starts to increment
;============================================PROGRAM=====================================================
AD:
BCF STATUS,RP0
BCF STATUS,RP1; BANK0
BSF ADCON0,GO ;Start conversion
BTFSC ADCON0,GO ;Is conversion done?
GOTO $-1 ;No, test again
MOVF ADRESH,W ;Read upper 2 bits
MOVWF EREDMENYH ;
BSF STATUS,RP0
BCF STATUS,RP1 ;BANK1
MOVF ADRESL,W ;Read lower 8 bits
BCF STATUS,RP0
BCF STATUS,RP1; BANK0
MOVWF EREDMENYL
PWM_Period_Match
BTFSS PIR1,TMR2IF; figyeli mikor lesz '1' azaz egyforma a pr2 es a tmr2
GOTO PWM_Period_Match
BTFSC EREDMENYH,0
BSF CCP1CON,DC1B0
BTFSC EREDMENYH,1
BSF CCP1CON,DC1B1; H PWM Duty Cycle
MOVF EREDMENYL,W
MOVWF CCPR1L ; L PWM Duty Cycle
BCF PIR1,TMR2IF
GOTO AD
END
Az eredmény MSB-it a PWM LSB helyeire írod be.
Nem tudom mit szeretnél vezérelni a PWM-mel, de ha nem valami baromi precíz dologról van szó akkor elég volna az AD-ből a felső 8 bitet. Akkor sokkal egyszerűbb lenne a kód.
Így sem lesz sokkal bonyolultabb, csak balra kell rendeztetni az AD eredményét  .
A prg.-ben a 35 sorban van jobbra, balra opció. Már próbáltam és teljes kitöltést kapok már 1,278V-nál. Először 8 bittel próbáltam majd 10 bittel, mind két esetben ugyan az.
Semmi precíz dologról nincs szó, hegesztőt próbálok vele majd hajtani. Ma lesz a próba 
Akkor jelenleg most az alsót a felsőbe íratom, mh... ? A hozzászólás módosítva: Júl 15, 2014
Idézet: „Már próbáltam és teljes kitöltést kapok már 1,278V-nál.” Mert megkeverted a bitek sorrendjét. CCP1L-be a lagmagasabb helyiértékű 8 bitet kell beírni, te viszont a 10 bites kiolvasás alsó 8 bitjét töltöd bele.
Legegyszerűbb megoldás: balra igazítva kérd az ADC eredményét, és az EREDMENYH tartalmát másold CCP1L-be!
Idézet: „Debugolni nem tudom” Persze, hogy nem, hiszen a normál kiadású PIC16F690 nem debugolható. AC162060 ICD headert kell a mikrovezérlő helyére dugni, azzal debugolható. A hozzászólás módosítva: Júl 15, 2014
(#) |
mps hozzászólása |
Júl 15, 2014 |
 |
/ |
 |
|
Sziasztok! Szükségem lenne egy olyan cuccra, amivel egy master és töb slave beszélget egymással, viszonylag nagy távolságon. Az RS485 tűnik alkalmasnak a feladatra. No, ehhez keresek valamilyen c mintát, csak nem találok. Tudna nekem valaki ajánlani egy helyet ahol ilyet fellelhetek?
Előre is köszi!
Udv mindenkinek
Elkeszitetem a mellekelt faljban levo kapcsolasi rajzot . Csak nem akar sehogysem mukodni ...
Az esetemben VCC = 5V , es kezdtem meregetni az LM324 , 1-es es fold kozot a feszultseget  , ami szerintem ha a feheren van akkor 5V es ha a fekete van a szenzor elott akkor 0V . De nekem konstans 3.8 V -van  .... 10k ellenalas helyett 12k raktam mivel csak olyanom van .
Szerintetek annyira fontos hogy 10k vagy 12k ? Azert nem mukodik ugy ahogy kell ?
A diódát és a ledet leárnyékoltad egymástól? Pl. egy darab nem átlátszó csövecskével?
Nem sajnos  koszi , kiprobalom , es jovok az eredmenyekkel .
Első körben a diódán mérd a feszültséget.
a fotodiodan : 4.88 V  - van ... es csakugy mukodik . es mostmar tettem az infraled es a fotodioda koze egy csevetestet (mellekelt foto) .
igy jo ? vagy tegyek ra egy kis csovecsket hogy semmi kulso feny ne erje az oldalrol .?
Köszi! Az elsőt megleltem, csak már távol áll tőlem az asm, de csak megértek belőle valamit 
A második sem fog rosszul jönni, úgyis a modbus volt tervbe véve  Igazából az adás-vétel váltása ami problémát okoz, főleg, hogy több slave lesz. Sajnos én igazán csak működő példákon keresztül tudok tanulni.
|
|