PIC16F648A - tlacitko

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

PIC16F648A - tlacitko

#1 Příspěvek od mbrazdil »

Zdravim Vas,

po delsi odmlce jsem si opet sedl k programovani MCU. Chtel jsem si udelat uplne jednoduchy priklad s PICem 16F648A a rozihani diody pomoci tlacitka. Mam naprogramovane toto:


Kód: Vybrat vše

#include <htc.h>

#define _XTAL_FREQ 4000000

#define b RB0
#define o RB1

// Fuse bity
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & LVP_OFF & CPD_OFF & CP_OFF);

// inicializace
void init() {
   TRISB0 = 1; // vstup
   TRISB1 = 0; // vystup
   RB1 = 0;
}

// hlavni program
void main() {
   init(); // inicializace

   while (1) {
      if (b) {
         o = 1;         
      } else {
         o = 0;
      }
   }
}


a schematem viz. obrazek. Problem je v tom, ze po zapojeni se mi hned od zacatku rosviti ledka, ktera se ma rozviti pouze kdyz drzim tlacitko, nevite v cem je hacek?
Přílohy
schema.png
(11.79 KiB) Staženo 92 x
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#2 Příspěvek od WLAB »

Neni tlacitko rozpinaci?
Nejsem PICar, takze muzu rici jen to, ze obecne v kodu problem nevidim.
de omnibus dubitandum est
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

#3 Příspěvek od mbrazdil »

Neni, mam to i promerene, je to mikrospinac ...
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

#4 Příspěvek od mbrazdil »

Nebo jinak, tlacitka se pripojuji jen na digitalni porty?
Uživatelský avatar
monterjirka
Příspěvky: 2855
Registrován: 14 čer 2003, 00:00
Bydliště: Blížejov

#5 Příspěvek od monterjirka »

Co to je za procesor 648? "Umí" interní hodiny"?
Co překladač a simulátor? Tam se toho u tak jednoduchého prográmku dá vysledovat...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#6 Příspěvek od Andrea »

Třeba tě ta LEDka nemá ráda za to, že jsi jí nedal odpor.
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#7 Příspěvek od WLAB »

Tak over jestli mas ty porty dobre nakonfigurovane...

Andrea: to by vypadalo spis na to, ze ho nema rad ten PIC, kdyz to sviti furt...

Taky si dovedu predstavit treba to, ze pokud to jede z nejakeho mekkeho, ci spatne blokovaneho, zdroje, tak po eventuelnim sepnuti LEDky nekdy pri inicializaci klesne napeti, cele se to restartuje a tak dokola...
de omnibus dubitandum est
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

#8 Příspěvek od mbrazdil »

to Andrea: ta ledka odpor nepotrebuje, sice sviti vice, ale vydrzi to ;) resp. musi ;)

Jinak to napajim z jednoclankove Lipolky tzv. napeti cca. 3.7 V, ale v tom problem byt nemel pac tento druh baterie je dostatecne tvrdy a navic tento PIC umi jet od 2 V
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#9 Příspěvek od Andrea »

mbrazdil píše:to Andrea: ta ledka odpor nepotrebuje, sice sviti vice, ale vydrzi to ;) resp. musi ;)

Tomu se říká prasárna, to si mrkej jak chceš.
Uživatelský avatar
mbrazdil
Příspěvky: 39
Registrován: 20 kvě 2012, 00:00

#10 Příspěvek od mbrazdil »

prasarna to je, to vim, ale to neni ten duvod proc porad sviti ...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#11 Příspěvek od Andrea »

A když napíšeš smyčku na blikání, bez čtení tlačítka, tak bliká? Nebo když prohodíš ty příkazy v if a else, zhasne?
Uživatelský avatar
Hydrawerk
Příspěvky: 8514
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#12 Příspěvek od Hydrawerk »

Životnost ledky klesne ze 100 000 hodin na 5 (?) hodin, řekl bych. Kup jí raději rezistor.
Uživatelský avatar
monterjirka
Příspěvky: 2855
Registrován: 14 čer 2003, 00:00
Bydliště: Blížejov

#13 Příspěvek od monterjirka »

Hydrawerk píše:Životnost ledky klesne ze 100 000 hodin na 5 (?) hodin, řekl bych. Kup jí raději rezistor.

Procesor má výstupní proud omezený, LEDce to nevadí, spíše u více LED (více použitých výstupů) to zatěžuje procesor a zvyšuje jeho teplotu.
------------------
Máš správně ošetřený RESET? Já tenhle procesor neznám, ale 16F84 by takhle "nechodila".
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#14 Příspěvek od Andrea »

Procesor má výstupní proud omezený jen vlastnostmi (odporem) koncových tranzistorů, nemá žádné dodatečné proudové omezení s jasně garantovanou hodnotou. Výstupním odporem je z principu omezený každý reálný zdroj napětí i třeba zásuvka 230V, ale odebíraný proud se musí omezit nějak z vnějšku tak, aby nebyla překročená max. hodnota, kterou ten zdroj (a případně i zátěž) snese bez poškození (u mikroporcesoru jsou ta maxima v datašítu, PIC má psáno 25mA).
Prostě připojit LED na push-pull výstup procesoru bez omezovacího odporu je prasárna ať si to někdo okecává jak chce.
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#15 Příspěvek od Atlan »

Ak to napajas z baterky a nemas napajanie osetrene keramikou a elektrolitom, tak skoda badat dalej, navyse ta bezodporova ledka to este zhorsuje. Najprv too daj doporiadku a potom to budeme riesit, odpor na ledku, 100 n + 10uF na napajacie nozicky uP.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“