Hallo,

Allereerst wil ik zeggen dat ik JALcc en de maker ervan geweldig vind. Helemaal omdat het FULL-functional is, en helemaal gratis. Ik ben er nu 2 weken mee aan het stoeien, en het begint al ergens op te lijken. Van simpele programma's die LED's doen branden tot het aansturen van 4x20 LCD schermen. Heel leuk allemaal!!

Ik heb echter ook een paar vraagjes:

(1)
Als ik een 4x20 LCD scherm aanstuur met 4 datalijnen (4bit) dan krijg ik eerst de tekst op de eerste regel, maar als ik dan de regel te lang maak komt de te lange tekst op regel 3. En als ik regel 2 aanstuur, en ik maak de tekst te lang, dan komt de overige tekst op regel 4. Het is dus moeilijk om zo een programma te maken dat eerst regel 1 dan 2 dan 3 en dan 4 aanstuurt. Mij vraag is of het ook anders kan. Dus of je ook regel 3 en 4 los kan aansturen?

(2)
Als ik een schakelaar op een ingang zet en ik wil dat het prigramma de hele tijd "luisterd" naar die poort, maar ondertussen moet het programma ook nog andere dingen doen zoals LCD aansturen. Hoe doe ik dat dan? Normaal zet ik die "luister-functie" in een loop, maar dan kan ik voor de rest niets meer aansturen...Het moet toch ook mogelijk zijn om allemaal dingen tegelijk te doen? Of om meerdere poorten als ingang te gebruiken enzo. Nu ziet het programma er zo uit:

include 16f628_4
include jlib
pin_b3_direction = output
pin_a4_direction = input
forever loop
pin_b3 = high
if pin_a4 == low then
pin_b3 = low
-- delay_1S( 5 )
end if
end loop

(3)
Bovenstaande programma wil ik graag aanpassen zodat de LED niet aangaat bij 1 druk op de toets, maar pas na een soort ritme van toetsen. Bijvoorbeeld 1s AAN, 1s UIT en weer 1s AAN. Dus een soort puls. Zou dat ook lukken?

Ik hoop dat jullie mij een beetje begrijpen, en dat jullie me wat meer opweg kunnen helpen.

Bij voorbaat dank voor de eventuele hulp.
Atmoz

Volgens mij is stef (de auteur van Jalcc) niet actief op dit forum, wel op de jallist, zie http://www.voti.nl/jal

Jouw vragen hebben meer betrekking op Jal zelf (daarvan ben ik de auteur), danwel gewoon op programmeren. Overigens kan je Jal vragen ook stellen op de jallist, maar die is wel engelstalig.

Je kan met hd44780_position(N) de cursor op een bepaalde plek zetten. Helaas is de juiste N voor het begin van iedere regel nogal afhankelijk van het display, dus je moet wat experimenteren.

Een microcontroller doet maar 1 ding tegelijk, punt uit. Er is nog wel een truuk (interrupts), maar daar zou ik nog even niet aan beginnen. De 'stoplicht' voorbeeld op http://www.voti.nl/cursus/index.html laat zien hoe je de illusie kan wekken dat je programma 'altijd' naar een schakelaar kijkt, door dat in de delay lussen te doen.

Een 'ritme' herkennen is prima mogelijk, zie het 'schakelaar'voorbeeld. Je moet het alleen wel helemaal uitkouwen, een microcontroller is nu eenmaal erg stom (maar wel erg snel).

Bedankt voor de snelle reactie en de uitleg. Ik ben effe met dat LCD scherm begonnen en dat werkt voortreffelijk!!

Op 2 februari 2003 14:27:35 schreef Wouter van Ooijen:
een microcontroller is nu eenmaal erg stom (maar wel erg snel).

om nog maar te zwijgen van koppigheid :)
(maar dat is blijkbaar enkel met mijn atmel chippie ;))

Hmmzzz, dat met die LCD aansturen (position) werkt allemaal goed behalve met de laatste regel (regel 4 van mijn 4x20LCD).

regel 1 stuur ik aan met hd44780_position (0)
regel 2 stuur ik aan met hd44780_position (41)
regel 3 stuur ik aan met hd44780_position (20)

Maar regel 4 krijg ik maar niet aan de praat. Terwijl dat wel lukt met hd44780_line1 (en dan tekst doortypen tot regel 4)

Dus het aansturen van de PIC naar LCD van regel 4 is in orde...

Iemand raad?

Oh, laat maar. Ik heb het al gevonden.

Voor de mensen die ook dit probleem hebben of nog ooit tegenkomen, hier de oplossing:

regel 4 begint op (84)
maar als je dat doet werkt het nog niet, er moet hd44780_line1 aan het begin staan. Dan werkt het wel.

Ik herinner me dat er een probleem was met regel 4, ik geloof dat ik altijd regel1 + n keer 'cusrsor poschuiven' gebruikte. Wat is nu precies jouw oplossing?

Op 2 februari 2003 18:30:35 schreef Wouter van Ooijen:
Ik herinner me dat er een probleem was met regel 4, ik geloof dat ik altijd regel1 + n keer 'cusrsor poschuiven' gebruikte. Wat is nu precies jouw oplossing?

hd44780_line1
hd44780_position (0) -- regel 1
hd44780 = "1"
hd44780_position (41) -- regel 2
hd44780 = "2"
hd44780_position (20) -- regel 3
hd44780 = "3"
hd44780_position (84) -- regel 4
hd44780 = "4"

(effe uit het hoofd, maar zo iets is het)
Dus je MOET de line1 regel gebruiken, dan pas werkt het...

Oke, nog maar een vraagje dan. Ik wilde aan de slag met IR zenden en ontvangen. Ergens op internet heb ik dit schema gevonden voor IR zenden:

http://oase.uci.kun.nl/~mientki/PIC/Projects/IR_transmit1.gif

En deze voor IR ontvangen:

http://oase.uci.kun.nl/~mientki/PIC/Projects/IR_receive1.gif

Nu wilde ik dus 2 PIC's programmeren. De eerste om een IR signaal te verzenden, en de tweede om het te ontvangen, en een LED aan te sturen.

Alleen zou ik niet weten hoe ik precies die software moet schrijven want in JALcc wordt hier niet veel over uitgelegt. Het zendgedeelte zal wel iets zijn met een soort "code" ofzo die hij zend, en dan moet de ontvanger precies weten wat die moet ontvangen om de LED te laten branden. Is dit moeilijk en zijn er misschien sites te vinden? Als ik zoek in google krijg ik veel met robots enzo te zien die communiceren met IR, en IR sensors enzo, maar ik wil dus zeg maar een afstandsbediening maken. Kan iemand me helpen alsjeblieft?

Groeten,
Atmoz

P.S. voor de geïntresseerden, hier is wat foto's/filmpje van mijn LCD projectje: http://members.home.nl/asd2/LCD_vs_PIC/

Zoek eens naar de IR protocollen (RC5 bijvoorbeeld). De basis is: moduleren op de frequentie van de ontvanger (voor een 1138 dus 38 kHz), en dat dan weer aan/uit schelen naar gelang de boodschap. Dat signaal krijg je dan uit je ontvanger (de 38 kHz krijg je niet meer te zien).

Ik geloof dat Eur van Andel wat dingen op de jallist files section heeft gezet over ontvangen (misschien ook zenden) met het RC5 protocol. Kijk daar eens.

Overigens kan je ook gewoon 1 IR LED gebruiken.

Ik heb de ontvanger voor IR signalen gemaakt en aangesloten op pen B5, als ik met een sony/philips/etc... afstandsbediening erop "schijn" gaat de LED 5 sec. aan :) Het werkt dus. Maarja nu moet ik maken dat hij pas reageerd op een bepaalde toets, anders gaat de LED ook steeds aan als ik bijvoorbeeld de TV harder/zachter wil zetten. Dus een soort van code. Heeft niemand een lijst van codes van bijvoorbeeld een sony radio enzo. Dan kan ik die erin proberen te zetten.

M'n broertje zegt dat je met de onboard USART van de PIC16F628 iets kan verzenden en ontvangen. Dus dat je een "A" wegstuurt met de ene PIC, en dan moet die die "A" weer herkennen met een andere PIC. Weet iemand hier iets van?

Ik dacht aan iets van deze opbouw:

[ZEND-PIC]

als schakelaar 1 hoog is, dan zend "A" via USART poort

[ONTVANG-PIC]

lees USART poort , als teken "A" binnenkomt zet poort 5 hoog

en dan alles in een loop.

Zoiets moet toch te maken zijn?

Op 6 februari 2003 15:40:12 schreef Atmoz:
M'n broertje zegt dat je met de onboard USART van de PIC16F628 iets kan verzenden en ontvangen. Dus dat je een "A" wegstuurt met de ene PIC, en dan moet die die "A" weer herkennen met een andere PIC. Weet iemand hier iets van?

Ja klopt. Via de USART kun je ook met je pc communiceren (RS232 protocol is onderdeel van USART)
Dus kun je ook 2 PIC's via USART laten communiceren.

Oh dat is mooi.
Ik ben al vanaf 11 uur vanmorgen non-stop bezig met IR en PIC16F628 maar ik kan nergens de jal commando's hiervoor vinden. niet om te zenden met de USART en niet om te ontvangen.

Op 6 februari 2003 15:53:33 schreef Atmoz:

Oh dat is mooi.
Ik ben al vanaf 11 uur vanmorgen non-stop bezig met IR en PIC16F628 maar ik kan nergens de jal commando's hiervoor vinden. niet om te zenden met de USART en niet om te ontvangen.

En hier dan?

Op 6 februari 2003 16:13:19 schreef Bastiaan:

[...]

En hier dan?

Ja, dat ben ik ook tegengekomen. Maar daar staan geen voorbeelden bij. Dus ik weet niet hoe ik het moet toepassen. Schema en voorbeeld *.jal zoals bij die knipper LED zou natuurlijk super zijn.

Op 6 februari 2003 16:31:15 schreef Atmoz:
[...]
Ja, dat ben ik ook tegengekomen. Maar daar staan geen voorbeelden bij.

Nou, dan vraag ik me af wat je wel ziet op die page?!

De aanwezige routines van die library staan opgesomt, en er staat een example bij. Ook kun je zelfs nog die library induiken om te zien wat ze daar doen.

Op 6 februari 2003 16:57:36 schreef Bastiaan:

[...]

Nou, dan vraag ik me af wat je wel ziet op die page?!

De aanwezige routines van die library staan opgesomt, en er staat een example bij. Ook kun je zelfs nog die library induiken om te zien wat ze daar doen.

Ik zie daar commando's staan voor seriele communicatie, maar ik zie geen aansluit schema's of voorbeeld files. Iemand die niets van JAL afweet (of andere programmeer talen) heeft het dus heel moeilijk ermee. Ik ben zo iemand. Ik wil wel, maar ik kan niet :) Ik zal wel weer goed zijn in andere dingen, maar zoiets is me te moeilijk. Daarom vraag ik ook hulp hier op CO :) :+

Dus er is niemand op deze site die met 2 PIC's een zend en ontvanger gemaakt heeft met infrarood?

De ene pic zend een code, en de andere ontvangt hem. Ik krijg het niet aan de gang.