Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Programování PIC v MPLABU

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Venda



Založen: Mar 22, 2006
Příspěvky: 431
Bydliště: Na soutoku Labe a Orlice

PříspěvekZaslal: čt říjen 12 2006, 23:28    Předmět: Programování PIC v MPLABU Citovat

Zdravím všechny, začínám programovat takže mám Piccolo od Asixu a knížku od Pana Hrbáčka s cédem kde je MPLAB, napíšu podle ní program ale vyhodí mi to okno. Dal jsem otisk obrazovky na www.maro-hk.com/program.htm , šváb je 16F84A . Díky moc za každou radu. Napadlo mě jestli se to nemůže cukat s XP.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5681
Bydliště: Břeclavsko

PříspěvekZaslal: pá říjen 13 2006, 7:26    Předmět: Citovat

V programu musí být definován typ procesoru

LIST p=16f84A, R=DEC ;direktivy prekladace
include<p16f84A.inc> ;definice nazvu registru

Osobně doporučuji také knížky od jiných autorů, každý to vysvětluje trochu jinak a lépe to pak pocholpíš.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
82.99.180.246
Neregistrovaný





PříspěvekZaslal: pá říjen 13 2006, 11:56    Předmět: Citovat

jezevec napsal(a):
V programu musí být definován typ procesoru

LIST p=16f84A, R=DEC ;direktivy prekladace
include<p16f84A.inc> ;definice nazvu registru

Osobně doporučuji také knížky od jiných autorů, každý to vysvětluje trochu jinak a lépe to pak pocholpíš.


Tohle v knížce vůbec nebylo, prosím tě jakou knížku by jsi mě doporučil, myslím pro úplný začátky Rolling Eyes = polopaticky

Jdu to vyzkoušet Díky moc
Návrat nahoru
Venda



Založen: Mar 22, 2006
Příspěvky: 431
Bydliště: Na soutoku Labe a Orlice

PříspěvekZaslal: pá říjen 13 2006, 11:58    Předmět: Citovat

Tak jsem to konečně přeložil a v UP 2,25 od Asixu nalil do brouka Agree . Ještě se chci zeptat, MPLAB je teda jenom na editaci, vypalovat neumí ? Díky.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5681
Bydliště: Břeclavsko

PříspěvekZaslal: pá říjen 13 2006, 16:38    Předmět: Citovat

Každý programátor PICů potřebuje soft, se kterým umí komunikovat. V MPLABu napiš program, můžež ho odsimulovat a přeložit do hex souboru, se kterým pracuje progamátor. Na knížky se mrkni na www.ben.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Venda



Založen: Mar 22, 2006
Příspěvky: 431
Bydliště: Na soutoku Labe a Orlice

PříspěvekZaslal: so říjen 14 2006, 21:37    Předmět: Citovat

jezevec napsal(a):
Každý programátor PICů potřebuje soft, se kterým umí komunikovat. V MPLABu napiš program, můžež ho odsimulovat a přeložit do hex souboru, se kterým pracuje progamátor. Na knížky se mrkni na www.ben.cz


Z Bena jsem si kupoval tady tu "Moderní učebnici programování PIC I."
Myslel jsem jestli jsi ty nebo někdo jiný nekápnul na vyloženě pěkně udělanou knížku o programování. Je nějaký překladač taky v češtině ?


Naposledy upravil Venda dne ne říjen 15 2006, 23:08, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
elektromichal



Založen: Oct 09, 2003
Příspěvky: 190
Bydliště: KARVINA

PříspěvekZaslal: ne říjen 15 2006, 11:54    Předmět: MPLAB Citovat

dobra knižka je i učebnice programovani PIC od Vacka

taky zkoušim něco s PIC ,chtělo by to něco s příklady
jak zabranit ,překmitu na tlačitku?jak ošetřit tlačitko?
jak se děla zpoždění ? nomostabil
např. kde dělam chybu ja ?
chtěl jsem jednim tlačitkem postupně zapinat 0,1,2 a pak vyp
ale při třetim stisku vypne 1 Sad

jak to napsat ,aby po třech stisknutich tlačitka byl vystup 2 v jedničce
na 5 sekund , v připadě ,že bylo stisknuto jen 2x se provedl reset co 3 minuty a čekal opět na 3 stisknuti ?



list P=12F629
#include <P12F629.INC>
__config _WDT_OFF & _INTRC_OSC_NOCLKOUT & _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON


CN1 EQU 20H
CN2 EQU 21H
CN3 EQU 22H

ORG 000
BSF STATUS,RP0
MOVLW B'00001000' ;nastaveni vstupu vystupu
MOVWF TRISIO
BCF STATUS,RP0
BCF GPIO,0
BCF GPIO,1
BCF GPIO,2

START
BTFSC GPIO,3 ;GPIO3 tlacitko
GOTO $-1
BSF GPIO,2 ;out 2
BTFSS GPIO,3
GOTO $-1
BTFSC GPIO,3
GOTO $-1
BSF GPIO,1 ;out 1
BTFSS GPIO,3
GOTO $-1
BTFSC GPIO,3
GOTO $-1
BSF GPIO,0 ;out 0
BTFSS GPIO,3
GOTO $-1
BTFSC GPIO,3
GOTO $-1
BTFSS GPIO,3
GOTO $-1
BCF GPIO,0
BCF GPIO,1
BCF GPIO,2
GOTO START


END
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
ViPali



Založen: Nov 21, 2005
Příspěvky: 524
Bydliště: Bratislava

PříspěvekZaslal: út říjen 17 2006, 22:23    Předmět: Citovat

Venda pozri si toto forum, je tu riešený problém prerušenia, tam je odkaz na dobrú stránku. A samozrejme Ap.notes na stránke microchip.com, tam je veľa príkladov (aj jednoduchých).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ViPali



Založen: Nov 21, 2005
Příspěvky: 524
Bydliště: Bratislava

PříspěvekZaslal: út říjen 17 2006, 23:13    Předmět: Citovat

elktromichal
v prvom rade zapínaš 2 - 1 - 0 - (a všetko vypnúť). Program je jednoduchý a nevidím tam problém (pre istotu sa pozrite aj niekto iný). Ak to nevypína správne, skús na začiatku programu zapísať všetky dotknuté registre, aj keď datašit hovorí že po resete sa nastavia.
Aby si vylúčil zákmity, pripoj G3 cez 4k7 na (+) a k tlačítku pripoj kondenzátor 1n.
Ďalej môžeš za každým rozsvietením vložiť čakanie ~1ms:
START
BTFSC GPIO,3 ;GPIO3 tlacitko
GOTO $-1
BSF GPIO,2 ;out 2
call wait1m
BTFSS GPIO,3
GOTO $-1

Ak po troch stlačeniach tlačítka má svietiť G2 5 sec a potom zhasnúť, tak jednoducho
bcf gpio,0
bcf gpio,1
call wait5s
bcf gpio,2

Ak má po stlačení tlačítka čakať 3 min a potom opäť na začiatok, tak:
bcf status,C
BTFSS GPIO,3 ;GPIO3 tlacitko bolo stlacene?
GOTO LED1 ; bolo stlacene tak svietit
call wait700u ; nebolo stlacene tak cakat
incf cas_cakania ; pripocitat do pomocneho registra cakania
btfss status,C ; skontrolujem ci je nahodeny C
goto $-5 ; nie, tak spat testovat ci je stlacene tlacitko
bcf gpio,0 ; rutina sa opakovala 256 krat, register presiel cez nulu,
bcf gpio,1 ; je nahodeny C, tak sa vynuluju G0 a G1 a ide
goto START; na zaciatok
; 256 x 700us je 179 s = 3 min
LED1:
clrf cas_cakania ; nulovat pomocny register cakania, nabuduce budem potrebovat opat 3min
bsf gpio1
.
.

atď
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ViPali



Založen: Nov 21, 2005
Příspěvky: 524
Bydliště: Bratislava

PříspěvekZaslal: st říjen 18 2006, 19:07    Předmět: Citovat

Mám dva tipy ako vytvoriť čakanie:
1/
; cakanie 1 ms 12F629 pri intRC osc má 4MHz a na jednu inštrukciu potrebuje jednu mikrosekundu.
.
call wait1m (2 cykly)
.
wait1m
movlw 0xf8 ; (1) 248 do w
movwf reg_w1 ; (1) 248 do reg_w1
; to boli 4 cykly - 4 us
w_1
decf reg_w1,f ; (1) dekrementovať reg_w1
btfss status,C ; (1 - 2) kontrolovat ci je reg_w1 uz nula
goto w_1 ; (2) nie je tak spat na zaciatok cyklu
; 4 cykly x 248 je 992us
return ; (2) vynuloval sa cely register tak navrat z podprogramu
.
4 + 992 + 2(btfss) + 2(return) = 1000us = 1ms

2/ ...Iný možný spôsob je:
povoliť prerušenie, GIE, do TMR0 vložiť 250 (!!!), preddelič nastaviť na 1:4, vstup do TMR0 cez preddelič z oscilátora.
V programe povoliť prerušenie T0IE,
Keďže viem že o 1ms nastane prerušenie tak sa môžem v programe venovať čomukoľvek inému.
Po 1 ms ma prerušenie vráti k riešeniu problemu.
Tú hodnotu 250 treba prepočítať vyhľadom na ošetrenie prerušenia.


Ak má niekto iný spôsob vložte to sem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ViPali



Založen: Nov 21, 2005
Příspěvky: 524
Bydliště: Bratislava

PříspěvekZaslal: čt říjen 19 2006, 12:54    Předmět: Citovat

V prípadoch, kde som použil btfss status,C myslím, že by bolo vhodnejšie použiť btfss status,Z, teda nekontrolovať C, ale Z bit.

A ešte prikladám jeden príklad čakanie na dĺžku dvoch bytov:

Wait_N
movlw HI_Time ; Nacitanie horneho bytu cakania
movwf reg_Hi ; uloz do registra
movlw Lo_Time ; hodnota v dolnom byte ostane vo W

W_1:
addlw 1 ; inkrementujem W (w = w + 1)
btfsc status, Z ; je W zaplnene do 0? Ak nie tak skocit.
decfsz reg_Hi, f ; W sa naplnil tak dekrementuj reg_Hi a hned kontroluj ci je nula
goto W_1 ; opakovat slucku
return ; aj reg_Hi uz bol nula tak navrat z cakania

Dĺžka čakania je (4MHz): (((reg_Hi) x (Lo_Time)) x 5) + 5 mikrosekúnd (max. 327685us = 327,685ms)

A niekde som videl zaujímavé predĺženie slučky:

W_1:
addlw 1 ; inkrementujem W (w = w + 1)
goto +2 ; (2) skoc o dva dopredu
goto +2 ; (2) skoc o dva dopredu
goto -1 ; (2) skoc o jeden dozadu
btfsc status, Z ; je W zaplnene do 0? Ak nie tak skocit.
decfsz reg_Hi, f ; W sa naplnil tak dekrementuj reg_Hi a hned kontroluj ci je nula
goto W_1 ; opakovat slucku
return ; aj reg_Hi uz bol nula tak navrat z cakania

t = 720ms
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.16 sekund