Fórum témák

» Több friss téma
Fórum » MSP430 mikrovezérlők
 
Témaindító: gomzito, idő: Ápr 21, 2006
Témakörök:
Lapozás: OK   8 / 139
(#) balux33 válasza icserny hozzászólására (») Szept 30, 2011 /
 
Ezt még nem is láttam, pedig olvasgattam a topicot .
Decebal : Nagyon szuper lett az órád
Esetleg a forráskódot nem tudnád felrakni valahova, vagy mikor lesz kész a cikk?
(#) DecebaL válasza balux33 hozzászólására (») Szept 30, 2011 /
 
Szia!

A 32768 Hz -es kristályra amit a Launchpad-al adtak szükséged lesz a pontos idő számoláshoz.
Az alábbi 3 sort illeszd be a main részbe a Watchdog alá.
CCTL0 = CCIE;
CCR0 = 32768-1;
TACTL = TASSEL_1 + MC_1;

És a Timer másodpercenként növeli a definiált számláló értékét. Beszúrtam egy rövid példát ez alapján el tudsz boldogulni.

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
mp++;//másodperc
if (mp>=60)
{
pr++; //perc
mp=0;
if (pr>=60)
{
hr++; //óra
pr=0;
if (hr>=24)
{
hr=0;
honaprtc();

}
}
}


}
(#) DecebaL válasza balux33 hozzászólására (») Szept 30, 2011 /
 
Félkész állapotban van, mert most van egy határidős melóm utána folytatom (kb. 2 hét).
(#) balux33 válasza DecebaL hozzászólására (») Szept 30, 2011 /
 
Szia!
Köszi, ez alapján talán el tudok indulni, ha nem kérdezek.
Nem sürgetni akartalak csak megkérdeztem, csináld nyugodtan ami sürgős.
(#) DecebaL válasza balux33 hozzászólására (») Szept 30, 2011 /
 
Korábban azt írtad, hogy debreceni vagy ha hozol egy 2553 kontrollert akkor ráégetem neked. A cikkel akarom nyilvánossá tenni a progit.
(#) balux33 válasza DecebaL hozzászólására (») Szept 30, 2011 /
 
Nem debreceni vagyok csak oda járok suliba.
Az a gond hogy nincs 2553 -asom csak 2352 (a farnernél ez volt a legnagyobb raktáron) , ebbe meg gondolom nem fér bele a program ?
Tényleg hol szoktatok kontrollereket venni ?
(#) DecebaL válasza balux33 hozzászólására (») Szept 30, 2011 /
 
Sajnos nem fér bele, a 2553 -ba is "cipőkanállal kellett beletuszkolnom".
(#) neogeo2 válasza DecebaL hozzászólására (») Szept 30, 2011 /
 
Gondolom, hogy ez az lcd kezelés (karakterkészlet) és a névnapok miatt lehet így. Ezek eléggé eszik a memóriát.
(#) DecebaL válasza neogeo2 hozzászólására (») Szept 30, 2011 /
 
Pontosan, ahogy írod.
(#) David.zsombor hozzászólása Szept 30, 2011 /
 
  1. #include "io430.h"
  2. #include "intrinsics.h"
  3.  
  4. void main(void) {
  5.          WDTCTL = WDTPW + WDTHOLD;       //Letiltjuk a watchdog időzítőt
  6.          P1DIR |= BIT0;                  //P1.0 legyen digitális kimenet
  7.          P1DIR &= ~BIT3;                 //P1.3 legyen digitális bemenet
  8.          while(1) {
  9.            while(P1IN & BIT3);           //lenyomásra vár
  10.            P1OUT ^= BIT0;                //LED1 állapotának átbillentése    
  11.            __delay_cycles(20000);        //20 ms pergésmentesítő késleltetés
  12.            while(!(P1IN & BIT3));        //felengedésre vár
  13.            __delay_cycles(20000);        //20 ms pergésmentesítő késleltetés
  14.          }
  15. }

ebbe hogy lehetne megcsinálni hogy világítás helyett villogjon a led? És esetleg azt hogy 3 mód legyen? És még azt szeretném kérdezni hogy hogy lehet beállítani az alacsony kimenetet?(mert ugyebár a magasnak |= ez a jele) Köszi.
(#) neogeo2 válasza David.zsombor hozzászólására (») Szept 30, 2011 /
 
A gombnyomás vizsgálatát szerintem megszakítással volna célszerű megoldani. Az viszont nem volna olyan egyszerű, mint a linkelt programod.

A többi kérdéssel kapcsolatban (ez alap c ismeret): Itt nézz körül. Kedesd ezt: "Summary - Expressions" Esetleg a google-be is beírhatod ezt: "C bitwise operator".
A |= kifejezés egy logikai vagy (or) műveletet jelent, nem azt hogy magas.
(#) icserny válasza David.zsombor hozzászólására (») Szept 30, 2011 /
 
Idézet:
„hogy lehet beállítani az alacsony kimenetet?”
Ugyanúgy, bitenkénti ÉS művelettel, ahogy néhány sorral korábban a bemeneti irányt állítottuk be. Csak P1DIR &= ~BIT3; helyett írd pl. ezt: P1OUT = ~BIT0;

A gombfigyelést pedig nem blokkoló módon kell megoldani. A honlapomon találsz példákat PIC-re (LED vezérlése nyomógombbal, stb.). Kövesd azt a módszert! Bővebben: Link
(#) balux33 hozzászólása Okt 1, 2011 /
 
Sziasztok!
Szereztem egy nokia 3410-es kijelzőt, úgy tudom hogy ennek ugyanaz a vezérlése mint a 3310-esé csak a felbontása nagyobb.
Próbálgattam a DecebaL féle driverel de sosem jó helyre rakta ki a karaktereket.
Mit kellene átírni hogy rendesen kezelje ?
Ebből még van kettő jó lenne ha meg tudnám csinálni.
(#) neogeo2 válasza icserny hozzászólására (») Okt 1, 2011 /
 

Idézet:
„Idézet:
?hogy lehet beállítani az alacsony kimenetet??
Ugyanúgy, bitenkénti ÉS művelettel, ahogy néhány sorral korábban a bemeneti irányt állítottuk be. Csak P1DIR &= ~BIT3; helyett írd pl. ezt: P1OUT = ~BIT0;”


Régebben az egyik fórumban pontosan megadtam valakinek egy parancssor helyes szintaxisát. Ez jó segítség volt neki akkor hirtelen. Érkezett erre azonban egy hozzászólás, ami így hangzott:

"Ne halat adj az éhezőnek, hanem hálót!".

Jobban belegondolva igaza volt annak a fórumozónak aki így reagált. Persze Te a "hálót" is biztosítod a remélhetőleg sokáig tartó cikksorozatoddal. Köszönjük azt a tényleg sok hasznos segítséget, amit Töled kap(t)unk. Enélkül talán sokkal kevesebben foglalkoznának ezzel a vezérlővel.
(#) icserny válasza balux33 hozzászólására (») Okt 1, 2011 /
 
Az eltérő felbontás miatt újra kell számolni az összes pozicionálással kapcsolatos részt, s természetesen a memória mérete is más lesz (ahol 504 van írva...).

De érdemes szétnézni az Interneten is, mert a C nyelvű programok viszonylag hordozhatóak.
(#) balux33 válasza icserny hozzászólására (») Okt 1, 2011 /
 
Ez lenne a pozicionáló rész?:
  1. void nokia_gotoxy(char xnokia, char ynokia)      // Nokia LCD 3310 Position cursor
  2. {
  3.   nokia_write_command(0x40|(ynokia&0x07));   // Y axe initialisation: 0100 0yyy
  4.  
  5.   nokia_write_command(0x80|(xnokia&0x7f));   // X axe initialisation: 1xxx xxxx
  6. }

Az 504 eket már átírtam 768 ra ( enyi kell nem?) , de a pozicionálás nem jó.
Ha ez az akkor hogyan kellene átírni, nem nagyon értem ezt a részt ?
(#) David.zsombor válasza neogeo2 hozzászólására (») Okt 1, 2011 /
 
Köszi mindkettőtöknek. Sajnos még C ben is kezdő vagyok de igyekszem
(#) icserny válasza balux33 hozzászólására (») Okt 1, 2011 /
 
Idézet:
„Az 504 eket már átírtam 768 ra ( enyi kell nem?)”
Ezt te tudod, velünk még nem közölted a méreteket.
Idézet:
„de a pozicionálás nem jó”
Ha belegondolsz, a karakterek kiírása pontsoronként (vagy oszloponként) történik. Az eltérő geometria miatt a soronkénti (vagy oszloponkénti) bájtok száma is eltér a Nokia 3310 kijelzőnél használt értéktől. Ilyen szemmel kell tehát átbogarászni a kódot, s lehetőleg megérteni, hogy hol, mit miért csinál.
(#) icserny válasza David.zsombor hozzászólására (») Okt 1, 2011 /
 
Idézet:
„Sajnos még C ben is kezdő vagyok”
Ezen már ne múljon: BRIAN W. KERNIGHAN ? DENNIS M. RITCHIE: A C programozási nyelv
(#) David.zsombor válasza icserny hozzászólására (») Okt 1, 2011 /
 
Ismerem köszi
(#) David.zsombor hozzászólása Okt 1, 2011 /
 
Ez nem feltétlenül ide tartozik de mégis Egy olyan kérdésem lenne hogyha egy l293-at akarok használni MSP430 al akkor azt hogyis? Vagyis elég bemenetnek a 3.3V? és az l293 5V os bemenetére akkor 5 volt kell vagy 3.3?
(#) balux33 válasza icserny hozzászólására (») Okt 1, 2011 /
 
Ez nekem is jól jön
Megtaláltam mi a gond, a 3410 es vezérlője az y kordinátát így kérné: 0100yyyy és 0-tol 8 ig mehet míg a 3310 es csak 3 bit en kéri 01000yyy és 0-tol 5 ig mehet .
Nem nagyon értem ennek: (0x40|(ynokia&0x07) a résznek a működését, hogy kellene eszt átírni hogy 4 bit-en küldje az y kordinátát?
(#) icserny válasza balux33 hozzászólására (») Okt 1, 2011 /
 
Idézet:
„Nem nagyon értem ennek: (0x40|(ynokia&0x07) a résznek a működését”
A 0x07-tel végzett ÉS művelet csak 3 bitet enged át (0x07 = 0b0000_0111).

Ha 4 bitet akarsz, akkor a 0x07 helyett 0x0F kell, mert 0x0F = 0b0000_1111.

Bitfaragás:

A bitenkénti VAGY kapcsolat '1'-be állítja azokat a biteket, ahol a második operandus (a maszk) '1'-est tartalmaz. Ez a megengedő VAGY igazságtáblájából következik (mert x | 1 = 1).

A bitenkénti ÉS kapcsolat pedig '0'-ba töröl minden bitet, amelyikkel szemben a maszk '0'-t tartalmaz. Mert x & 0 = 0.

A bitenkénti kizáró VAGY pedig ellenkezőjére állítja azokat a biteket, amelyekkel szemben '1' áll. Mert 0 ^ 1 = 1, továbbá 1 ^ 1 = 0, tehát x ^ 1 = !x.
(#) icserny válasza David.zsombor hozzászólására (») Okt 1, 2011 / 1
 
Az adatlap tudja ezt legjobban. VIL, VIH, VSS paramétereket nézd meg!
(#) balux33 válasza icserny hozzászólására (») Okt 1, 2011 /
 
Hát ez jó volt.
elfelejtettem nézni a fórumot, közbe a weboldaladon találtak alapján rájöttem ugyan arra amit itt leírtál
Most már jó a címzés, csak valamiért a jobb alsó sarokban egy részt nem töröl és így ott össze-visszaság van.
Ha én írok oda 0-kat akkor eltünik, úgyhogy valami a törléssel lehet.
void nokia_clean_ddram(void)
  1. void nokia_clean_ddram(void)
  2. {
  3.   nokia_gotoxy(0,0);         // 84*6=504      clear LCD
  4.   for (ddram=768;ddram>0;ddram--){nokia_write_data(0x00);}
  5.  
  6. }

Ez a rész tartozik oda, megnéznéd mi lehet a gond ?
(#) balux33 válasza balux33 hozzászólására (») Okt 1, 2011 /
 
Megoldottam
Az a gond hogy a vezérlő 102 soros a kijelző pedig csak 96, így nem törölte az egész kijelzőt.
A lényeg hogy 918 at kell beírni.
Na de ez a bitmap rajzolásnál megint problémát okoz mert szétcsúszik a kép
Valahogy be kellene rakni egy sorváltást ha eléri a 876 "sort" hogy ne írja tovább a cgram ot úgysincs tovább kijelző.
Ezt hogyan kellene megoldani?
bocsi ha fárasztalak
(#) David.zsombor válasza icserny hozzászólására (») Okt 1, 2011 /
 
Ezt már néztem. De most rájöttem. 5v kell a vss re (min 4.5) és a bemeneti jel 2.3-vss(5v) lehet ugye? Az enable meg megy föl a + tápra ha nem használom(de +5v vagy 3.3?) Jól mondom? Köszi a segítséget.
(#) icserny válasza David.zsombor hozzászólására (») Okt 1, 2011 / 1
 
Idézet:
„Az enable meg megy föl a + tápra ha nem használom(de +5v vagy 3.3?)”
Elvileg 2,3 V-tól bármelyik jó, de én az L293 tápfeszültségére kötném.
Idézet:
„Jól mondom?”
Igen de itt zárjuk is le a témát, mert erősen off...
(#) David.zsombor válasza icserny hozzászólására (») Okt 1, 2011 /
 
Oké. Mégegyszer köszi.
(#) balux33 válasza balux33 hozzászólására (») Okt 1, 2011 /
 
Feltöltöm az átírt 3310 lcd drivert , így már több mint kevésbé működik 3410 lcd-vel. Bitmap megjelenítésnél 102x64 es felbontásra kell méretezni, de a sorok utolsó 6 pixele nem fog megjelenni.
Karaktereknél pedig mielőtt elérnénk a kijelző végét sort kell váltani.
Hátha szüksége lesz rá másnak is.
Köszönöm a segítséget icserny-nek és az eredeti drivert DecebaL-nak !
Következő: »»   8 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem