Sida 1 av 1
[mikrobasic] BLINK-A-LED, problem med PORTB, GPIO och TRISIO
Postat: 6 april 2007, 21:57:19
av netrunner
Jag sitter och bygger på min nya RGB-lampa. Kör med 12F675 och PWM funkar riktigt bra.
En sak fattar jag dock inte. I alla andra program jag pulat med så använder man "PORTB" för benen men har GPIO.
Från mitt testprogram:
Kod: Markera allt
TRISIO = %000
GPIO = %000
delay_ms(500)
GPIO = %111
delay_ms(500)
En extra funkation är att lampan ska veta om det är ljust i rumet eller inte. Om det är mörkt (troligen natt) så ska lampan glida över till svagt rött i nästa växling och stanna där tills det blir ljust i rumet.
Man ska kunna tassa iväg till toan i halen på natten utan att sabba mörkersendet och utan att snubbla på alla skor som står där.
LDR och lite mer saker funkar bra föratt ge logisk etta vid lagom lite ljus. Men tyvärr så kan jag inte läsa av status på pinnarna jag provar på. Alla exempel pratar om PORTB (som jag inte har) och även om man byter det till GPIO så funkar det inte...
Vad gör jag för fel? Hur läser jag av pinna på ett bra sätt?
Postat: 6 april 2007, 23:21:36
av sodjan
Alla 8-pinnare har bara ett "port-register" och det heter just GPIO.
Dina övriga frågor går inte att svara på eftersom du inte
tycker att vi behöver veta hur du har gjort...
Postat: 7 april 2007, 00:27:53
av netrunner
Hmm... jag missade visst det, sorry...
Jag har en strömbrytare (GND/5V) (som jag senare ska byta mot min LDR-koppling) på pinne 4.
Har försökt med olika kombinationer av:
Här finns det lite olika sätta att räkna på och jag har testat alla jag tror är vettiga. Är det rätt sätt att köra överhuvudtaget med "if GPIO.4 = %1 then"?
Har utan framgång även testat med:
Kod: Markera allt
"sub function Button(dim byref port as byte, dim pin, time, active_state as byte) as byte"
Hur gör ni?
Postat: 7 april 2007, 00:34:00
av lgrfbs
Kan du inte använda A/D funktionen till att läsa av din LDR-koppling?
Sen kan du styra i programmet hur utgången ska bete sig.
Typ:
Läs LDR via A/D.
kollar om A/D värdet om det är morgon/kväll eller Natt/Dag värden
Styr utgångarna efter A/D värdet.
loopa åter till första program raden.
Postat: 7 april 2007, 00:52:02
av netrunner
BAAA!!!! LALA, TJOHOOO DING-DONG-DING-DONG!!! ¤%&@£ ****** **** ****
man kan tydligen inte använda pin 3 som input.
Nu har jag pin 2 och båda teknikerna funkar.
lgrfbs: Ja, det låter bra. Har inte lärt mig hur man gör för att fånga A/D värden. Programet PWM:ar alla tre färger hela tiden så att man i mjukvara ska kunna kompensera för om en av lysdioderna är starkare än dom andra. Bör även kunna användas till att steglöst reglera ljusstyrka efter hur ljust det är i rumet. Det är steg2 helt klart.
Nu ska jag gå och vårda min psykiska hällsa lite!

Postat: 7 april 2007, 01:03:38
av lgrfbs
Postat: 7 april 2007, 15:54:21
av sodjan
> man kan tydligen inte använda pin 3 som input.
Menar du GP4 ? Och i så fall, varför inte ??
Hade du den satt som analog pinne ?
Postat: 7 april 2007, 21:04:02
av netrunner
Inte den blekaste. Desperat som man var så testar man att göra exakt samma sak men med en annan pinne, så "vipps" så funkar allt. Allt jag testar funkar på pinne 2 men inte på pinne 3. Har inte kommit så långt som till A/D än.
Lampan är klar och funkar utmärkt i alla fall...
Postat: 7 april 2007, 22:12:24
av Marta
Har Du config-wordet rätt? Pinnen kan ha funktioner som måste väljas bort där för att den skall fungera som vanlig I/O.
Postat: 7 april 2007, 23:09:46
av sodjan
Antingen gör du fel eller så är det fel på kretsen.
Om det inte spelar någon roll för dig så gör det
det inte för mig heller...
> Har inte kommit så långt som till A/D än...
Förrutom att du har stängt av den, eller hur ?