Avatar billede kenn_lh Nybegynder
03. april 2008 - 12:19 Der er 5 kommentarer og
1 løsning

I2C via. COM-porten og programmering dertil

Hejsa!

Jeg er godt nok ny her på siden, men forsøger mig alligevel allerede med et spørgsmå. Spørgsmålet kunne også høre til i programmeringskategorien.

Jeg har gang i et eksamensprojekt i design og produktion (elteknik) på 3. år HTX, og arbejder på, at få en tænde/slukke for et varmelegeme via et solid-state relæ. Jeg har også en thermister, hvor jeg får dens målinger konverteret til I2C, som jeg vil behandle med et stykke computersoftware. Ud fra temperaturen, skal jeg sende pulser til relæet (som sidder på en udgang på en I2C-slave), som tænder/slukker for varmelegemet.

Jeg ved, at COM-porten arbejder med RS232-niveauer (13V), så jeg skal have dem sænket til TTL-niveau, men det store spørgsmål er, hvordan jeg i praksis kan få I2C til at kommunikere med min computer?

Jeg er forholdvis skarp indenfor programmering i C#, og jeg håber at kunne skrive et stykke software, som kan håndtere I2C gennem COM-porten, hvis det overhovedet kan lade sig gøre?
Avatar billede thov Forsker
03. april 2008 - 18:07 #1
Her er en bog om den slags: http://www.elektor-electronics.co.uk/products/books/computer/pc-interfaces-under-windows.12342.lynkx

Vil det ikke være lettere at benytte computerens parallel port (LPT1) ?
Den har jeg selv puslet med via Pascal, og det er pærenemt.
Avatar billede kenn_lh Nybegynder
04. april 2008 - 10:08 #2
Den bog ser rigtig interessant ud, men jeg er i tvivl om jeg kan nå at skaffe den.

Hvordan bruger jeg parallelporten?
Avatar billede thov Forsker
04. april 2008 - 17:01 #3
Puha... det blev en arkæologisk udgravning - programlister på 5,25" floppy'er, men heldigvis har jeg en gammel WinME slæde med det rigtige drev :-)

Hop ind her, og åbn folderen PUBLIC  ftp://diverse:filer@89.150.107.40 så finder du foldere med programlister i Assembler, Pascal, Basic og C.
Det er de samme programmer, og det er 'print' sourcekoden som vil være interessant.

Når du henter data ind fra printerporten, kan du f.eks.benytte ACK og Busy forbindelserne.
Gennem ACK kvitterer en printer for en modtaget byte, og Busy er en hold-your-horses - bufferen er fyldt.

Programlisterne var tilbehør til en 'mursten' på 800 sider (den behøver du forhåbentlig ikke), og i en anden manual, har jeg en detailleret beskrivelse af 'Int 17H' som BIOS benytter, når den kommunikerer med printeren.
Avatar billede kenn_lh Nybegynder
04. april 2008 - 17:20 #4
Det ser rigtig spændende ud! Jeg har lige hentet sources, så jeg prøver lige at kigge igennem og forsøge mig lidt frem her henover weekenden!

Mange tak fordi, du ville bruge tid på at grave listerne frem - hvis du lægger et svar, kvitterer jeg med en bunke point som en yderligere tak for indsatsen :)
Avatar billede thov Forsker
04. april 2008 - 17:41 #5
Ok, et svar :-)
Nede i 'gulvhøjde' kan man heldigvis alt - som f.eks. at skrive til addressen 378 (Hex) og læse fra 379 (Hex) hvor printeren melder om Busy, Paper out, Ack o.s.v.

Har du spørgsmål, så vender du bare tilbage...
Avatar billede kenn_lh Nybegynder
04. april 2008 - 18:10 #6
Du har hermed fået et lille læs point :)

Jeg vender frygteligt tilbage, hvis jeg løber ind i problemer ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester