 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.25 Kraj: Ljubljana
|
Objavljeno: Sre Jan 21, 2009 3:48 pm Naslov sporočila: |
|
|
Trenutno se nekaj ukvarjam s tem projektom pa me zanima zakaj mi v Bascomu postavi na 1ko tudi PORTC.0 če je ta definiran kot vhod? Zdi se mi da je to zaradi tega ker je bil prej določen kot izhod (1) in ga sedaj obravnava kot pull-up upor. Kako bi to preprečil?
Koda: |
Do
Config Portc.0 = Output
Portc.0 = 0
Portc.1 = 1
Waitms 1
Portc.0 = 1
Portc.1 = 0
Waitus 1
Goto Senzor
Loop
Senzor:
Do
Config Portc.0 = Input
If Pinc.0 = 0 Then
Goto Senzor
Else
Goto Priprava
End If
Loop ... |
_________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
MAAG Član

Pridružen-a: Čet 26 Jun 2008 14:18 Prispevkov: 178 Aktiv.: 0.86 Kraj: SG-MB
|
Objavljeno: Sre Jan 21, 2009 8:57 pm Naslov sporočila: |
|
|
Mogoce pa prehitro preverjas, ce je Pinc.0 = 0 in se zaradi vztrajnosti se ne spremeni polariteta na pinu. Poglej v datashet hitrost preklopa iz "1" na "0". _________________ Samo da se kadi  |
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.25 Kraj: Ljubljana
|
Objavljeno: Sre Jan 21, 2009 9:13 pm Naslov sporočila: |
|
|
To ne bo držalo ker meni program cikla v zanki "senzor" toliko časa dokler ne pade PINC.0 na 0.
Vidim da sem malo narobe napisal program zgoraj vendar to nima velikega pomena ker je važno samo na kakšen način mi zadeva ne deluje. _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.30 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jan 21, 2009 9:18 pm Naslov sporočila: |
|
|
Koda: |
Senzor:
Do
Config Portc.0 = Input
If Pinc.0 = 0 Then
Goto Senzor
Else
Goto Priprava
End If
Loop ...
|
Zakaj pa vedno znova konfiguriraš pin kot Input? Prestavi ga ven iz zanke...
Koda: |
Senzor:
Config Portc.0 = Input
Do
If Pinc.0 = 0 Then
Goto Senzor
Else
Goto Priprava
End If
Loop ... |
Pa koliko imam jaz izkušenj, se da pin avtomatsko na 1, ko ga definiraš kot vhod, ker potem čaka, da ga daš na 0. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
 |
LEDuser Član


Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.25 Kraj: Ljubljana
|
Objavljeno: Sre Jan 21, 2009 9:33 pm Naslov sporočila: |
|
|
Citiram: |
Pa koliko imam jaz izkušenj, se da pin avtomatsko na 1, ko ga definiraš kot vhod, ker potem čaka, da ga daš na 0. |
Jaz bi rad dosegel HI-Z stanje ker ko bom napolnil LED se mi bo počasi izpraznila preko vhoda. Poizkušal sem že z ADC vendar mi znova in znova izpiše vrednost 1023 kar pomeni da se mi od nekje pojavi "1". _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.30 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jan 21, 2009 9:42 pm Naslov sporočila: |
|
|
Jajks, čakaj, trenutno nimam časa, ampak bom potem poiskal tisto temo, tam sem jaz nekako rešil tole - oziroma boljše - se mi je posrečilo. Sem že pozabil... _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.18
|
Objavljeno: Čet Jan 22, 2009 12:59 am Naslov sporočila: |
|
|
objavte še različne načrte za to! Zakon stvarca |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.18
|
Objavljeno: Tor Mar 10, 2009 5:20 pm Naslov sporočila: |
|
|
kako bi pa naredil to, da bi ledica najprej bila ugašnjena in nato ko se je dotakneš sveti ves čas, ne da bi se ugasnila in ponovno čakala na dotik??
jaz namreč želim, da bi bila ugasnena pa bi jo z dotikom prižgal in ugasno, kot stikalo |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.18
|
Objavljeno: Tor Apr 07, 2009 5:51 pm Naslov sporočila: |
|
|
mene zanima sledeče, in sicer kako so definirani porti
če napišem
TRISB = 0 'porti so izhodni
PORTB.7=0
PORTB.6=1
samo mi ni jasno, če je pin PORTB.7 = 0 to ne pomeni da je LED dioda preko upora vezana na maso poleg tega pa, če že sam ukaz TRISB = 0 pomeni da so vsi porti B izhodni, kako je lahko potem en pin vhod? Iz tega ukaza lahko razberem to da je anoda diode na portu 7 in ima vrednost 0, pin na katerem pa je upor pa vrednost 1
razumem to, če je anoda diode vezana na pin uC upor pa na maso, da jo prižgemo z logično 1 ali pa če je anoda dioda vezana na napajanje in upor na pin uC jo prižgemo z logično 0.
V zgornem primeru pa temu ni tako, prosim za razlago
program pišem v mikroBASIC-u za PIC-e |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.18
|
Objavljeno: Čet Apr 09, 2009 4:29 pm Naslov sporočila: |
|
|
se high "Z" da rešiti s pomočjo open colector?? |
|
Nazaj na vrh |
|
 |
Majster Član


Pridružen-a: Sob 14 Nov 2009 1:05 Prispevkov: 344 Aktiv.: 1.81 Kraj: Majšperk
|
Objavljeno: Sob Apr 24, 2010 4:40 pm Naslov sporočila: |
|
|
Še moja koda za PIC, po zgledu program_er-ja. Uporabljal sem zeleno LED-ico in meni dela Ko je LED-ica zakrita bo svetila z rahlim utripanjem, ko je pa na svetlobi bo ugasnjena z rahlim utripanjem Mogoče bi lahko dodal malo več komentarjev x)
Koda: |
/* Program za uporabo LED diode kot senzor
Pisal: Jan Haložan */
#include <16f876a.h> //uporabljamo PIC16F876A
#fuses NOLVP,NOBROWNOUT,HS,NOPROTECT,PUT,NOWDT //varovala
#use delay(clock=6000000) //kvarc je 6MHz
#define led0 PIN_B7 //katoda
#define led1 PIN_B6 //anoda
int16 cas;
void main()
{
set_tris_B(0b00000000);
output_high(led1);
output_low(led0);
delay_ms(995);
cas = 0;
while (1)
{
set_tris_B(0b00000000);
output_high(led1);
output_low(led0);
delay_ms(5);
output_low(led1);
output_high(led0);
set_tris_B(0b00000011);
do
{
cas = cas + 500;
delay_us(500);
} while(input(PIN_B7)>0);
set_tris_B(0b00000000);
if (3000>cas)
{
output_low(led0);
output_low(led1);
delay_ms(500);
cas = 0;
}
else
{
output_high(led1);
output_low(led0);
delay_ms(500);
cas = 0;
}
}
} |
_________________ Smith & Wesson — the original point and click interface. |
|
Nazaj na vrh |
|
 |
Majster Član


Pridružen-a: Sob 14 Nov 2009 1:05 Prispevkov: 344 Aktiv.: 1.81 Kraj: Majšperk
|
Objavljeno: Ned Apr 25, 2010 2:07 pm Naslov sporočila: |
|
|
Pa še nekaj popravkov in nastavitev, da se prižge ko daš na njo prst. Dodal sem še "zaščito" da je čas praznjenja omejen, ker drugače se mi je LED-ica praznila tudi po 5s v temi
Tu je koda:
Koda: |
/* Program za uporabo LED diode kot senzor
Pisal: Jan Haložan */
#include <16f876a.h> //uporabljamo PIC16F876A
#fuses NOLVP,NOBROWNOUT,HS,NOPROTECT,PUT,NOWDT //varovala
#use delay(clock=6000000) //kvarc je 6MHz
#define led0 PIN_B7 //katoda
#define led1 PIN_B6 //anoda
int32 cas;
void main()
{
set_tris_B(0b00000000);
output_high(led1);
output_low(led0);
delay_ms(990);
cas = 0;
while (1)
{
delay_ms(5);
set_tris_B(0b00000000);
output_high(led1);
output_low(led0);
cas = 0;
delay_ms(5);
output_low(led1);
output_high(led0);
set_tris_B(0b00000011);
while(input(PIN_B7)==1 && cas<200000)
{
cas = cas + 500;
delay_us(500);
}
set_tris_B(0b00000000);
if (30000<cas)
{
output_low(led0);
output_high(led1);
delay_ms(1000);
cas = 0;
}
else
{
output_low(led1);
output_low(led0);
delay_ms(1000);
cas = 0;
}
}
} |
_________________ Smith & Wesson — the original point and click interface. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|