Megválaszolatlan hozzászólások | Aktív témák Pontos idő: csüt. jún. 06, 2024 11:04



Hozzászólás a témához  [ 254 hozzászólás ]  Oldal 1, 2, 3, 4, 5, 6  Következő
Kezdő PIC-el és Atmellel ismerkedőknek. 
Szerző Üzenet
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Üdv!
ha még kérdezhetek kérdezek.
csak annyi kéne hogy egy terminálról beadott számot szeretnék betenni egy regiszterbe majd visszaküldeni. A gond hogy a szám kétjegyű kéne hogy legyen. A cód:

Kód:
VETEL2:   BTFSS   PIR1,RCIF         ; (5) check for received data
         GOTO   VETEL3
         GOTO   VETEL4

VETEL3:   CLRWDT
           GOTO    VETEL2

VETEL4:      MOVF   RCREG,W   
         MOVWF   EREDMENY        
         CALL   KULD
         

PL. ha elküldöm a 67 - et csak a 6-os kerül bele az EREDMENY - be
Az is gond hogy stringként küldöm. Azt szeretném elérni hogy a szám amit küldök számként kerüljön bele a regiszterbe. igy 255 - ig tudnék számot küldeni. Viszont ha decimalisként küldöma számot hülye karakterek jönnek vissza


csüt. okt. 23, 2008 20:13
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Köszönöm a segítséget, én voltam a figyelmetlen.
oda kéne figyelni hogy a műveletek eredménye hová kerül
mégegyszer köszi.


csüt. okt. 23, 2008 15:11
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Nézd meg a Build ablakban az üzeneteket. Van ott két olyan üzenet is, amiben valami olyasmi szerepel, hogy using default destination. Na amelyik sorra ezt az üzenetet megjeleníti, az a sor okozza a problémát.


csüt. okt. 23, 2008 15:00
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
potyo írta:
Én sejtem, hogy miért nem lesz a VETT_KAR kettő, vagyis jobban mondva, hogy miért nem az lesz benne, amire delmur82 számít, de nem mondom meg. Inkább annyit mondok, hogy a szimulátor pont az ilyesmire van kitalálva.


Elárulod a sejtésed?


csüt. okt. 23, 2008 14:50
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
watt írta:
Ha a PC2_CIMKE: címke után a VETT_KARR soha nem lesz 2, akkor nem fut le soha a RESET rutin.
Ha megtalálod miért nem lesz 2, akkor megvan a megoldás.


Nos igen én is erre jutottam csak nem tudok rájönni miért. A VETT_KARR - t mindig törlöm. A VETEL részben pedig tudomásom szerint mindig az aktuális elküldött karakter kéne hogy belemásolódjon. esetleg valamit még törölni kéne? Az a furcsa, hogy a PC1_CIMKE és a PC2_CIMKE rész teljesen ugyanaz.


csüt. okt. 23, 2008 14:48
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Én sejtem, hogy miért nem lesz a VETT_KAR kettő, vagyis jobban mondva, hogy miért nem az lesz benne, amire delmur82 számít, de nem mondom meg. Inkább annyit mondok, hogy a szimulátor pont az ilyesmire van kitalálva.


csüt. okt. 23, 2008 13:13
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Ha a PC2_CIMKE: címke után a VETT_KARR soha nem lesz 2, akkor nem fut le soha a RESET rutin.
Ha megtalálod miért nem lesz 2, akkor megvan a megoldás.


csüt. okt. 23, 2008 13:06
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Kód:
UGRIK:       MOVLW    d'25'            ; ha a gomb meg van nyomva, feltöltjük az összes számlálót
         MOVWF    SZAMLALO

         BTFSC    PORTB,3         ; viszont SZAMLALO2-őt és SZAMLALO3 -at attól függően töltjük fel hogy
         GOTO    UGRIK1            ; a gomb lenyomásakor PORTB 1. bitje (ami fél másodpercenként értéket
         GOTO    UGRIK2            ; vált) aktív volt- e?

UGRIK1:      MOVLW    d'120'            ; ha aktív volt 2 periódust kell várni következő felvillanásig ezért a
         MOVWF    SZAMLALO2         ; számlálókba 1-el többet töltünk.
         MOVLW    d'4'
         MOVWF    SZAMLALO3
         MOVLW    d'135'
         MOVWF    SZAMLALO4
         GOTO    UGRIK3



UGRIK2:      MOVLW    d'119'            ; ha nem volt aktív a gomb csak 1 periódust kell várni az első felvillanásig
         MOVWF    SZAMLALO2         ; ezért a számlálókat úgy töltjük fel mint a START szekcióban (alapeset)
         MOVLW    d'3'
         MOVWF    SZAMLALO3
         MOVLW    d'135'
         MOVWF    SZAMLALO4
UGRIK3:      MOVLW    b'00000001'      ; bárhogy töltöttük fel számlálókat KAPCS értékét 1-re kapcsoljuk hiszen gombnyomásra
         MOVWF    KAPCS            ; léptetünk. KAPCS értéke ugyancsak 2 sec után törlődik
         BTFSC    TAROLOKAPCS,0      ; TAROLOKAPCS segít abban, hogy a gomb lenyomása alatt TAROLO csak egyszer
         NOP                     ; váltson értéket hiszen különben oda vissza villogna
         MOVFW    TAROLO            ; ha TAROLOKAPCS értéke 1 már történt váltás és átugorjuk a váltást
          XORLW    b'00000001'      ; TAROLOKAPCS is KAPCS -al együtt 2 sec mulva nullázódik így következő
          MOVWF    TAROLO            ; gombnyomásra megint válthat. De ha értéke 0, mehet a váltás
         BSF       TAROLOKAPCS,0
         CLRF    VETT_KARR
         RETURN


RESET:      CLRF   ATALL_INDUL
         CLRF   TNY_SZAMLALO_TIZES
         CLRF   TNY_SZAMLALO_EGYES
         CLRF   EREDMENY
         CLRF   TNY_INDUL
         CLRF   TNY_SZAMLALO
         MOVLW   d'2'
         MOVWF   KAPCS_SZAMLALO
         CLRF   TELI_INDUL         
         CLRF   NYARI_INDUL      
         MOVLW   d'4'
         MOVWF   NYARI_SZAMLALO
         MOVLW   d'61'
         MOVWF   NYARI_SZAMLALO2
         CLRF   VETT_KARR
         CLRF   TIME_SETTING
         CALL   UZENET2
         RETURN


UZENET2:   MOVLW   'R'
         CALL   KULD
         MOVLW   'E'
         CALL   KULD
         MOVLW   'S'
         CALL   KULD
         MOVLW   'E'
         CALL   KULD
         MOVLW   'T'
         CALL   KULD
         MOVLW   ' '
         CALL   KULD
         MOVLW   'O'
         CALL   KULD
         MOVLW   'K'
         CALL   KULD
         MOVLW    0x0D            ; CR
         CALL   KULD
         MOVLW    0x0A            ; LF
         CALL   KULD      
         RETURN



KULD:       MOVWF    TXREG             ; send data in W

         BSF     STATUS,RP0         ; BANK 1
WtHere:    BTFSS   TXSTA,TRMT        ; (1) transmission is complete if hi
           GOTO    WtHere
         
           BCF    STATUS,RP0        ; BANK 0
         CLRWDT
           RETURN


csüt. okt. 23, 2008 12:49
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Mint már leírtam, ha abból visszajönne, akkor tovább is menne. Mivel nem jön vissza, nem megy tovább.

Idézet:
viszont így is látszik a lényeg

Szerencse, hogy ezt ilyen jól meg tudod ítélni.


csüt. okt. 23, 2008 12:32
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Nos tulajdonképpen ez egy kód részlet maga a progi nagyon hosszú, viszont így is látszik a lényeg. csak annyit csinál a program ezen része hogy a terminálról bevitt karakter hatására ami "1" vagy "2", de még lenne több is, lefuttatja a RESET vagy az UGRIK rutint. A rutinok működnek vissza is térnek mert más programrész is használja őket. Éppen ezért nem értem mert az első cimkébe bármilyen rutint hívok meg mind lefut visszatér viszont a másodikban egyik sem fut le. meg sem hívódik.


csüt. okt. 23, 2008 12:29
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
A CALL UGRIK hogy néz ki? Miért nem jön abból vissza? Mert ha abból visszajönne, akkor tovább kell menjen a program. Az más kérdés, hogy nem teszel megjegyzéseket a sorok mögé, így nem lehet érteni mit akarsz! A megjegyzés a program szerves része, nélküle még egy profi sem programoz!


csüt. okt. 23, 2008 12:19
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Üdv!

Ismét egy kis segítség kéne.
Általában mindig rájövök ha valamit elrontok programozás közben de ez most teljesen kész. Nem tudok rájönni. Biztos hogy valami pitiáner dolog , lehet hogy már nem fog az agyam. Hátha a tiétek frissebb:
Kód:
VETEL:      BTFSS   PIR1,RCIF         ; (5) check for received data
           GOTO    VETEL

             MOVF   RCREG,W   
         MOVWF   VETT_KARR         ; save received data in VETT_KARR
                              
      
PC1_CIMKE:   BCF       STATUS,Z ;megvizsgálom status - t
         MOVLW    '1'
         XORWF    VETT_KARR
         BTFSS    STATUS,Z ; ha status '1' tehát a vett karakter 1 akkor call ugrik
         GOTO     PC2_CIMKE
         CALL    UGRIK
         GOTO    PC2_CIMKE

PC2_CIMKE:   BCF      STATUS,Z
         MOVLW   '2'
         XORWF   VETT_KARR
         BTFSS   STATUS,Z
         GOTO   VETEL
         CALL   RESET
         GOTO   VETEL

Egyszerűen a program nem jut el PC2_CIMKE részhez. Már fölcseréltem a két cimkét de semmi. Az első "helyen" álló cimkét szépen végrehajtja CALL UGRIK, de a CALL resetet soha. Csak akkor ha a CALL RESET - et beírom az első cimkébe. Magyarul akár mit csinálok ,bárhogy variálom csak a VETEL utáni cimkét csinája meg. Ilyennel még nem találkoztam. Mi lehet az oka? Hol rossz a kód?


A hozzászólást 1 alkalommal szerkesztették, utoljára delmur csüt. okt. 23, 2008 12:31-kor.



csüt. okt. 23, 2008 11:22
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Ennek örülök! Gratulálok!


szer. okt. 22, 2008 12:28
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Köszönöm mindenkinek a segítséget.Tökéletesen működik.


szer. okt. 22, 2008 12:17
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Próbáld ki. Ha működik, akkor lehetsz biztos. Tönkre nem mehet semmi.


szer. okt. 22, 2008 7:48
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Ok köszi. Már kiszámoltam csak biztos akarok lenni. Akkor high lesz a sebeség. Mégegyszer köszi.


szer. okt. 22, 2008 7:38
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Idézet:
4 MHz alatt már low?

Ennek semmi köze nincs ehhez, pláne, hogy a nagyobb frekikhez kell a low.
Ismételni tudom, ott van minden az adatlapban, egyszerű a képlet, had ne én számolja ki ezt is, kicsit több önállóság kell ilyesmihez!


szer. okt. 22, 2008 7:33
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Köszönöm a segítséget. Akkor az én osc sebességemmel hogy számoljak?
A BRGH bitet high vagy low -ra állítsam? 4 MHz alatt már low?
Egyébként a fenti programban a képlet alapján kijön a 9600 baud mert x - re 25 jön ki. (ha jól számoltam.) Viszont az én 3,2768 MHz - es oscimra BRGH = low esetén 9600 baud, aszinkron komm esetén 4,3 jön ki. Ezt kerekítsem 4-re?
A legközelebb akkor jutnék egy egész számhoz ha 7200 baud - ot használnék. Akkor x - re 6,1 jön ki. Azt 6 -ra kerekítve 7314 baud jönne ki. Nem tudom az már működne -e?


szer. okt. 22, 2008 7:06
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
delmur írta:
Nos 3,2768 Megás van. Ezért nem megy? HOgy kéne ebben az esetben beállítani 9600 ra?

Akkor a "nullmodemes" próba jól működik ez jó hír!
Az kevésbé, hogy nem gondoltál arra, hogy az eredeti kapcsolás bárminemű megváltoztatása hibát okoz, és e miatt jól megtréfáltál itt mindenkit!
Ha ezt a kristályt akarod használni, akkor a beállítást az SPBRG registerben lévő érték átírásával tudod megtenni. Adatlap USART résznél vannak a képletek az BRGH bit állapotától függően(A TXSTA-ban van a bit).
Miért pont 9600-ra? Kérdezem ezt azért, mert a programban eddig is 19200 volt a beállított, persze ha 4megás kvarc lett volna rajta...


szer. okt. 22, 2008 5:34
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Hát igen, mint írtam, nekem is elindult. De ha hozzáértem valamelyik lábhoz, akkor le is állt. Ha viszont ott voltak a kondenzátorok, akkor agyon sem lehetett ütni :D


kedd okt. 21, 2008 21:58
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
potyo írta:
Látni néha fura dolgokat. Valamelyik nap említette valaki, hogy nem szokott kondenzátort tenni a kvarc mellé, és így gyártottak már le valamiből több száz darabot is. Nekem is működött így, de nem adnám a nevemet hozzá...
Hááát... Ha valahogy összejön 10-15 pF, akkor akár működöképes lehet addig, amíg a környezeti jellemzők meg nem változnak...


kedd okt. 21, 2008 21:55
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
Ha nem akarsz vacakolni, a 16F628A-nál konfig bitekkel állítsd be a 4 MHz-es belső oszcit.
__config _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON


kedd okt. 21, 2008 21:48
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Nos 3,2768 Megás van. Ezért nem megy? HOgy kéne ebben az esetben beállítani 9600 ra?


kedd okt. 21, 2008 21:38
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
gozi írta:
potyo írta:
Kinek a tiszteletére tetted oda :?: Nem kell. Vedd ki a pic-et, és zárd rövidre a foglalatban a tx és rx lábait. Ekkor visszajön a terminalba, amit kiküldesz?
Sok helyen láttam már ilyen megoldást, különböző ellenállásértékekkel: 47 ohm, 100 ohm 1k, 2,2k. De miért tették oda a soros ellenállást?
Fogalmam sincs, talán valami védelmi célból. Látni néha fura dolgokat. Valamelyik nap említette valaki, hogy nem szokott kondenzátort tenni a kvarc mellé, és így gyártottak már le valamiből több száz darabot is. Nekem is működött így, de nem adnám a nevemet hozzá...


kedd okt. 21, 2008 21:38
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Nos szerintem a soros portról érkező zavarokat hivatott kivédeni. Viszont a karakterek szépen visszajönnek pic nélkül. de ha beteszem csak fura karakterek jönnek. A pic jó mert egyéb program szépen megy rajta. A progit meg nem én írtam. Szóval :cry:


kedd okt. 21, 2008 21:37
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
Hány megás kvarcod van? A fenti beállítás 4MHz esetén fog 9600 bps-t adni.


kedd okt. 21, 2008 21:36
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
potyo írta:
Kinek a tiszteletére tetted oda :?: Nem kell. Vedd ki a pic-et, és zárd rövidre a foglalatban a tx és rx lábait. Ekkor visszajön a terminalba, amit kiküldesz?
Sok helyen láttam már ilyen megoldást, különböző ellenállásértékekkel: 47 ohm, 100 ohm 1k, 2,2k. De milyen okkal teszik oda a soros ellenállást?


kedd okt. 21, 2008 21:30
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
igen visszajön


kedd okt. 21, 2008 21:27
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Kinek a tiszteletére tetted oda :?: Nem kell. Vedd ki a pic-et, és zárd rövidre a foglalatban a tx és rx lábait. Ekkor visszajön a terminalba, amit kiküldesz?


kedd okt. 21, 2008 21:19
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
az én panelemen a PIc és a MAX között van egy 1K - os ellenállás. Nem kavarhat az be?


kedd okt. 21, 2008 21:13
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
Hűű tényleg. Röhely, hogy egy ilyen egyszerű kapcsolás és nem tudják normálisan lerajzolni...
Itt egy jó:
http://elka.brawijaya.ac.id/info/img/artikel/RS232_adapter.PNG


A hozzászólást 1 alkalommal szerkesztették, utoljára gozi kedd okt. 21, 2008 21:24-kor.



kedd okt. 21, 2008 21:12
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
delmur írta:
A 6 - os lábán a kondi polaritáshelyesen van? mert más rajzokon máshogy van
Nem, fordítva van.


kedd okt. 21, 2008 21:10
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
A 6 - os lábán a kondi polaritáshelyesen van? mert más rajzokon máshogy van. Illetve az én panelemen a PIc és a MAX között van egy 1K - os ellenállás. Nem kavarhat az be?


A hozzászólást 1 alkalommal szerkesztették, utoljára delmur kedd okt. 21, 2008 21:11-kor.



kedd okt. 21, 2008 21:09
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
kipróbáltam és sajnos ezzel is fura karaktereket küld. Nem tudom mi lehet. Ha valakinek van ötlete azt szivesen fogadom. Esetleg aMAX232 vel kapcsolatban valami tuti rajzot. Nem kell semelyik bemenetée földre húzni ?


kedd okt. 21, 2008 20:18
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Ha összekötöd azt a két lábat amit írtam, akkor azt kell visszakapjál, amit elküldesz, különben hardveres gond van.

Használd a BrayTerminalt, annál nincs jobb.
www.watt_tar1.tvn.hu/terminal/Terminal.exe


kedd okt. 21, 2008 20:08
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szomb. jan. 01, 2005 11:21
Hozzászólások: 857
Hozzászólás 
watt írta:
Ha tartod a véleményed, akkor nem érted a lényeget. :roll:

Ja és isten mentsen, hogy oldalakat írj!


De, értem.
Rádumáltál, nem írok.


kedd okt. 21, 2008 20:02
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Nem nagyon használtam még a terminált. Gondolom a hyper terminálról van szó. Nem is nagyon tudom hogy álítsam be. esetleg nem tudnál segíteni hogyan állítsam be hogy egyszerűen elmenjenek a karakterek?
Az RSCheck nevű progival csinál valamit de nem azt a számot kapom amit elküldök. betűt meg nem is tudok elküldeni


kedd okt. 21, 2008 19:52
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Esetleg nem stimmel a baudrate?
Ha összekötöd a max232 9 és 10-es lábát, ügyelve arra, hogy a PIC-ről lekötöd először, akkor megfordulnak az adatok a terminál szerint?


kedd okt. 21, 2008 19:42
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Igen bocsi már megfordítottam. Már reagál a progi csak nem azt küldi amit én küldök. Szerinted mivel lehet a gond?


kedd okt. 21, 2008 19:38
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Idézet:
MAX 7 -es megy RS232 3-as láb MAX 8-as megy RS232 2-es láb. Szerintem jó.

Szerintem meg nem! :wink:
Ha a PC-n lévő csatlakozó lábkiosztását írtad, akkor nem jó.
Ha a kábeled végén lévő csatlakozó lábkiosztását akkor sem jó, hacsak nem "keresztkábel" amin belül a 2-es a 3-asra van kötve a másik végén.


kedd okt. 21, 2008 19:31
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Rendben van a hardware működik. Viszont nem azt küldi vissza a PIC amit küldök. esetleg próbáljam meg másik progival? Melyikkel?


kedd okt. 21, 2008 19:24
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: csüt. jan. 31, 2008 9:00
Hozzászólások: 65
Hozzászólás 
Sziasztok!

PIC16F628A kontrollerről van szó. Szeretném beindítani a soros kommunikációt. A hardware elméletileg jó(minden egyéb működik szépen), a progi amit beleteszek egy sima példaprogi küldök valamit a
pic meg visszaküldi. Mégse megy a kommunikáció. PIC 7 -es (Rx) megy a MAX232 9 - es lábára, PIC 8 -as (Tx) megy MAX 10-es lábára. MAX 7 -es megy RS232 3-as láb MAX 8-as megy RS232 2-es láb. Szerintem jó.
A progit azért mellékelem bár jónak tűnik. terminálnak az RSCheck nevű progit használom. Csak az kéne hogy meglegyen a hiba miért nem megy.
Nagyon megköszönném a segítséget.(a max232 kondizva van rendesen 4db)esetleg valamit még le kell zárni rajta?
Kód:
LIST P=16F628, R=DEC    ; Use the PIC16F628 and decimal system
      ERRORLEVEL   -302
        #include "P16F628.INC"  ; Include header file

        __config  _XT_OSC & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON

        CBLOCK 0x20             ; Declare variable addresses starting at 0x20
     dataL
        ENDC

        ORG    0x000            ; Program starts at 0x000
;
; --------------------------------
; SET ANALOG/DIGITAL INPUTS PORT A
; --------------------------------
;
   movlw 7
   movwf CMCON      ; CMCON=7 set comperators off         
;
; ----------------
; INITIALIZE PORTS
; ----------------
;
   movlw b'00000000'       ; set up portA
        movwf PORTA   
       
        movlw b'00000100'   ; RB2(TX)=1 others are 0
        movwf PORTB

        bsf STATUS,RP0          ; RAM PAGE 1

        movlw 0xFF
        movwf TRISA      ; portA all pins input

        movlw b'11110010'   ; RB7-RB4 and RB1(RX)=input, others output
        movwf TRISB

; ------------------------------------
; SET BAUD RATE TO COMMUNICATE WITH PC
; ------------------------------------
; Boot Baud Rate = 9600, No Parity, 1 Stop Bit
;
        movlw 0x19              ; 0x19=9600 bps (0x0C=19200 bps)
        movwf SPBRG
        movlw b'00100100'       ; brgh = high (2)
        movwf TXSTA             ; enable Async Transmission, set brgh

        bcf STATUS,RP0          ; RAM PAGE 0

        movlw b'10010000'       ; enable Async Reception
        movwf RCSTA
;
; ------------------------------------
; PROVIDE A SETTLING TIME FOR START UP
; ------------------------------------
;
        clrf dataL
settle  decfsz dataL,F
        goto settle

        movf RCREG,W
        movf RCREG,W
        movf RCREG,W            ; flush receive buffer
;
; ---------
; MAIN LOOP
; ---------
;
   call message           ; send "16F628 alive"
loop    call receive            ; wait for a char
   call send               ; send the char
        goto loop
;
; -------------------------------------------
; RECEIVE CHARACTER FROM RS232 AND STORE IN W
; -------------------------------------------
; This routine does not return until a character is received.
;
receive btfss PIR1,RCIF         ; (5) check for received data
        goto receive

        movf RCREG,W            ; save received data in W
        return
;
; -------------------------------------------------------------
; SEND CHARACTER IN W VIA RS232 AND WAIT UNTIL FINISHED SENDING
; -------------------------------------------------------------
;
send    movwf TXREG             ; send data in W

TransWt bsf STATUS,RP0      ; RAM PAGE 1
WtHere  btfss TXSTA,TRMT        ; (1) transmission is complete if hi
        goto WtHere

        bcf STATUS,RP0          ; RAM PAGE 0
        return
;
; -------
; MESSAGE
; -------
;
message movlw    '1'      
   call   send
   movlw    '6'
   call   send
   movlw    'F'
   call   send
   movlw    '6'
   call   send
   movlw    '2'
   call   send
   movlw    '8'
   call   send
   movlw    ' '
   call   send
   movlw    'a'
   call   send
   movlw    'l'
   call   send
   movlw    'i'
   call   send
   movlw    'v'
   call   send
   movlw    'e'
   call   send
   movlw    0x0D   ; CR
   call   send
   movlw    0x0A   ; LF
   call   send
   return

        END


kedd okt. 21, 2008 19:06
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Ha tartod a véleményed, akkor nem érted a lényeget. :roll:

Ja és isten mentsen, hogy oldalakat írj!


kedd okt. 21, 2008 10:47
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szomb. jan. 01, 2005 11:21
Hozzászólások: 857
Hozzászólás 
watt írta:
Kár, hogy Te sem érted az egész lényegét! Feladom...

Azért mert nem írok fél oldalas levelet a miértekről, csak a gondolatmenetem végeredményét, még nem kell hülyének nézni, értem miről beszélsz. Ennek ellenére tartom a véleményem.


kedd okt. 21, 2008 9:45
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Idézet:
Arra kíváncsi lennék, hogy azok akik ellenzik mindenféleképp a magasszintű fordítókat, használták-e őket huzamosabb ideig...

Igen használok.
De itt a kezdésről volt szó, és már leírtam az indokokat. Nincs mit erről többet beszélni.


kedd okt. 21, 2008 4:43
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Én nem ellenzem, csak azt mondom, hogy ahhoz, hogy a kontrollereket tudja rendesen használni, ahhoz tudni kell, hogy mi történik a háttérben. Azt pedig asm nyelven lehet megtanulni. Én sem írok mindent asm-ben, de azért a listing fájlt meg szoktam nézegetni, ha valami nem úgy működik, mint ahogy én azt szeretném. Nemrég ráfutottam egy hibára az SDCC fordítóban: kihagyott egy bankváltást. Ennek köszönhetően pedig nem a TMR1L regisztert olvasta ki, hanem valami mást. Namost ha nem nézem meg az asm listát, és nem tudom, hogy ott minek kellene állnia, akkor sosem jövök rá, hogy a fordító fordítja hibásan a kódot.


hétf. okt. 20, 2008 19:34
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 382
Hozzászólás 
Srácok!

Arra kíváncsi lennék, hogy azok akik ellenzik mindenféleképp a magasszintű fordítókat, használták-e őket huzamosabb ideig... Én már szinte csak magasszintű fordítót használva (ált. valamilyen C) feljesztek, nem azért, mert nem ismerem az asm-et, hanem azért, mert hihetetlenül megnövelné a fejlesztési időt. Egy kis USB, Ethernet, TCP on Modbus... Durva lenne ezt mind asm-ben programozni, főleg ha előjön valami hiba. Kollégám megrögzött asm-es volt addig, amíg egy több ezer soros programban hibát kellett keressen.

Az is érdekes, hogy annyira féltek a bugoktól... Én a feljesztéseim során az MPLAB ASM-jében majdnem annyi bugot találtam, mint a "magasszintű" fordítókban... Innentől kezdve nincs miről beszélni.


hétf. okt. 20, 2008 19:13
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Kár, hogy Te sem érted az egész lényegét! Feladom...


hétf. okt. 20, 2008 18:48
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szomb. jan. 01, 2005 11:21
Hozzászólások: 857
Hozzászólás 
Szerintem fogadjuk el, hogy mindenki magának választ nyelvet és uC-t is, ne akarjuk meggyőzni arról, hogy mi lesz jó neki, ha egyszer úgy érzi, ez kell neki.


hétf. okt. 20, 2008 14:23
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. nov. 01, 2006 14:00
Hozzászólások: 3559
Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
Hozzászólás 
Igen, az ATMELT benéztem, elnézést!
És a másik kérdésedre is igen a válasz, természetesen!

Idézet:
de egy soros protokoll ami basicban (pacalban) 2 utasítás, azt Te asm-ben hány oldalon programozod le?

Attól függ melyik részét kérdezed.
A beállításokat mindkét nyelven meg kell tenni, csak eltérő utassításokkal.
pl. Open vs. mov. (regisztereként 1, vagy két sor, az USART-nál max 3 regisztert kell beállítani)
A kivitelt egyik nyelv sem támogatja protokollal, csak hardveresen.
ASM-ban egy kivitel: mov #'K', w0 majd mov w0, U1TXREG
Előtte még éremes megnézni, hogy a TX modul szabad-e, ami szintén néhány sor, de ha be akarok építeni egy hibakezelést, akkor az még néhány sort igényel, de ez a magasabb szintű nyelvekben is így van.

A különbség csak annyi, hogy én tudom mit miért állítok be, Te meg a nyelv elrejtése miatt nem. Ez akkor lesz kellemetlen, ha valami nem úgy működik ahogy kellene, mert nem láthatod meg az okot. A végeredmény, hogy soha nem fogod ismerni a PIC-et teljesen, ami egy áramkör jellegű dolognál elég gáz.


hétf. okt. 20, 2008 10:06
Profil Privát üzenet küldése Honlap
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 254 hozzászólás ]  Oldal 1, 2, 3, 4, 5, 6  Következő

Ki van itt

Jelenlévő fórumozók: Google [Bot] valamint 15 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség