Sida 1 av 2

Basic + PIC 12F629?

Postat: 18 januari 2005, 23:45:17
av Logan
Hej finns det någon bra tutorial på hur man programerar dessa komponenter i Basic. Försökte lära mig den koden som man fick med men det gick inte så bra... :P

Postat: 19 januari 2005, 08:49:26
av Hedis
Språket är ju samma oavsett vilken krets du arbetar med.
Så läs du instruktionerna till Bicbasic lr vad du nu programmerar i.

Postat: 23 januari 2005, 12:49:43
av Logan
Mikro Basic - Tyckte det värkade vara bra...
Men har inte fattat något.
Någon här som har dmz proj och har programerat i Mikro Basic får gärna skriva hur han gjorde och en liten kod för att tända en lysdiod :)

Postat: 23 januari 2005, 13:16:34
av $tiff
har du kollat i manualen på s. 9?

Postat: 23 januari 2005, 13:36:58
av Logan
Okej så det räcker med att skriva den koden och välja rätt PIC och sedan är det klart?

program My_LED
main:
TRISB = 0 ' configure pins of PORTB as output
eloop:
PORTB = $FF ' turn on diodes on PORTB
delay_ms(1000) ' wait 1 second
PORTB = 0 ' turn of diodes on PORTB
delay_ms(1000) ' wait 1 second
goto eloop ' stay in a loop
end.

Men något säger mig att det inte kommer funka....
Samt hur gör man så vissa pinnar blir ingångar, eftersom man måste göra så på detta kortet...

Är TRISB pinne 2 så TRISA är pinne1?

Postat: 23 januari 2005, 14:47:06
av $tiff
Jag vet inte hur dendär DMZ-grejen ser ut. Om du ger mig en länk eller ritning/förklaring så kan svara på fårgorna.

Postat: 23 januari 2005, 15:44:50
av FriXteR
$tiff: http://www.ctrldesign.com/microcoder/pr ... meter.html
det är där dmz har fått den i från :)

Postat: 23 januari 2005, 16:48:40
av grapetonix
Logan skrev:Okej så det räcker med att skriva den koden och välja rätt PIC och sedan är det klart?

Note: JAG HAR HÄR ÄNDRAT PROGRAMMET såsom det vore se ut för en 12F629.

program My_LED
main:
TRISIO = 0 ' configure pins of GPIO as output
eloop:
GPIO = $FF ' turn on diodes on GPIO
delay_ms(1000) ' wait 1 second
GPIO = 0 ' turn of diodes on GPIO
delay_ms(1000) ' wait 1 second
goto eloop ' stay in a loop
end.

Men något säger mig att det inte kommer funka....
Samt hur gör man så vissa pinnar blir ingångar, eftersom man måste göra så på detta kortet...

Är TRISB pinne 2 så TRISA är pinne1?
En port är en uppsättning av pinnar.
12F629 har ingen port som benämns PORTA.

På dessa åttapinnarschip kallas den istället GPIO.
Registret du ställer in inputs/outputs med kallas TRISIO.

Alltså: GPIO,X likamed pinne X på porten GPIO.


Tänk på att oscillatorn måste vara rättinställd i mikrobasic också. Du vill förmodligen använda den interna 4MHz-aren.

Sätt även en kondensator på ett tiotal nF paralellt med och nära picen för säkerhets skull. Sen vore det fungera.

Postat: 23 januari 2005, 17:00:03
av Logan
okej, men man måste ju öppna en I och en O så det blir en sluten krets. hur blir det då?

Postat: 24 januari 2005, 00:37:05
av grapetonix
Nu hänger jag faktiskt inte med på vad du menar.

Det finns inga förhinder med att göra alla pinnar till outputs.
Koppla en diod mellan någon av utpinnarna (inte #4, den är reserverad som input), och jord. Dioden bör då blinka

Postat: 24 januari 2005, 08:03:22
av Logan
Jo för det är ju uppbygd som "matrix" eller vad det nu heter.

*--*--*------ 1
| | |
*--*--*------ 2
| | |
3 4 5

Man sätter pinne 3 som utgång och pinne 1 som ingång så lyser ju en diod.

Postat: 24 januari 2005, 08:12:56
av maxxflow
Ne, du kopplar ju lysdioden mellan ut-pinnen och jord... En in-pinne blir knappast nån bra jord... Och onödigt vore det också...

Postat: 24 januari 2005, 08:32:10
av AndLi
Lösningen i Datromagazin har lagt lysdioderna i en array/matris för att kunna multiplexa antalet tillgängliga utgångar på ett effektivt sätt.

De har 12 lysdioder till 5 utgångar!

Nu har jag inte artikeln här, men är det inte så att man sätter tex pinne 1 hög pinne 3 låg och 4,5,6 som ingång för att tända lysdioden uppe till höger i Logans ascii bild? Denna position består förövrigt av två lysdioder vända mot varandra. Så om man lägger pinne 1 låg, och 3 hög kommer den andra att tändas.

Postat: 24 januari 2005, 19:26:29
av Logan
Japp det är så jag menade, samt det är så den funkar.

Postat: 24 januari 2005, 23:16:00
av Logan
Någon som har någon bra kod för det?