Lüftersteuerung - Moddingprojekt

Original geschrieben von eurofighter
eine vorbelegung ist aber cniht ötig, oder?


wenn du nicht damit arbeitest, kannst du es einfach ignorieren.

ich würde dir mal vorschlagen, mit einem einfachen programm anzufangen: led's blinken lassen, lauflicht, lcd-ausgabe, ....


hinten im handbuch ist eine aufstellung, wie ein prog prinzipiell aufgebaut ist - kann ich nur empfehlen. ich hab auch anfangs ein bisschen probs gehabt, weil ich pascal nur auf dem pc mal gemacht hab und das schon ein wenig anderst ist.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
ist der Quelltext echt so einfach?

naja, aber jetz machen wir erstmal weiter im Programm....

was kommt als nächste Lektion?


P.S.: soll cih dann morgen sofort die Paltien Komplett bestücken?
 
nimm einfach mal das tutorial zur hand und mach das durch. ist echt hilfreich.

wenn der µC gelöscht ist, kannst du die platine bestücken.

was ich allerdings nicht weiß: ist das bei dem modul so oder bei jedem µC - auch lose gekauften :hmm:

ich werde mit wohl eine lochrasterplatine machen nur mit der spannungsversorgung unseres moduls und die dann darin proggen und dann erst auf die endstufe setzen.

heut ist übrigens das material von reichelt gekommen.
 
ich kann ja mal am woende ein kleines prog schreiben, das nur auf deinem lcd was ausgibt. wenn du das dann verstanden hast ist der rest kein prob mehr.
 
quarze, smd-kondensatoren und widerstände, stecker und stiftleisten, trimmer (helligkeit und kontrast), .....
 
hab da ein problem: ich hab das tutorial nicht auf dem rechner.
kannst das schnell per mail schicken ?

aber an die harry-addy ;)
 
das war das falsche: das mit dem "tut" im dateinamen ;)


... und im handbuch steht nur die hälfte drin :(
 
ich habs .... moment .....

wird etwas unübersichtlich, weil man hier keine leerzeichen machen kann :(

program Blinker; jedes programm beginnt mit PROGRAM und dem namen

interessiert momentan nicht
{ $BOOTRST $00C00} {Reset Jump to $00C00}
{$NOSHADOW}
{ $W+ Warnings} {Warnings off}

hier wird der zielproz festgelegt; das vcc ist nicht notwendig
Device = mega8, VCC=5;

hier wird eine unit (unterroutinen, die es für viele dinge gibt: lcd, seriell, tastatur, ..... die hier ist für .... sagen wir mal grob "timing-sachen") geladen
Import SysTick;

hier wird aus der unit SYSTEM ein befehl importiert
From System Import ;


Define

taktfrequenz: anhand derer werden z.b. warteschleifen berechnet
ProcClock = 16000000; {Hertz}

wie soll ich das erklären :hmm: die kleinste zeiteinheit im prog
SysTick = 10; {msec}

interessiert auch nicht - später mal
StackSize = $0032, iData;
FrameSize = $0032, iData;

hier werden variablen und konstanten definiert. das IDATA sagt, wo diese liegen. steht dort z.b. EEPROM liegen sie im ... rat mal :fresse:
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
{--------------------------------------------------------------}

hier werden unterprogramme geschrieben. initports legt z.b. fest, was ein ein- und ausgang ist und ob die internen pull-up's eingeschaltet sind
{ functions }
procedure InitPorts;
begin
PortB:= %00001100;
DDRB:= %00001100;
end InitPorts;
{--------------------------------------------------------------}

hier geht das eigentliche prog los: es wird das unterprog von oben aufgerufen, die verarbeitung der interrupts eingeschaltet und eine endlosschleife (loop) begonnen bis (endloop) in der allerdings nichts steht. es passiert also auch nichts weiter
{ Main Program }
{$IDATA}
begin
InitPorts;
EnableInts;
loop
endloop;

wie am anfang das "PROGRAM" endet jedes prog mit "END"
end Blinker.



verwirrend ?

sollen wir jetzt noch was in die schleife LOOP reinschreiben ?
 
Zuletzt bearbeitet:
jo, schreib mal was schönes in die loop rein, aber ich muss leider pennen gehen. ;) ..werds mir morgen dann mal ansehen....

Bis jetzt verstehe ichs, außer..

was ist initports genau?



Cu & n8, Marc :wink:
 
mal noch was zur erläuterung:

es gibt

proceduren - das sind unterprogramme, denen variablen übergeben werden können und die andere variablen verändern können

function - das ist das gleiche, wie eine procedur, nur das eine function ein ergebnis zurückliefert. wird wie eine variable gehandhabt: A:=rechnemal2(4) .... in der function "rechnemal2" steht dann z.b. daß die übergebene variable "4" berechnet werden soll und an A zurückgegeben wird

und zu guter letzt ...

eine unit ist eine sammlung von proceduren und functionen. diese können aber mit dieser version des avrco nicht selber geschrieben werden. units sind z.b. SYSTICK, LCDMULTI, SERIAL, ...
 
na dann gute nacht :)

ich kann dir wirklich nur empfehlen, das tutorial durchzulesen - ist gut beschrieben ;)

das initports ist eine procedure - also ein unterprogramm, das im programm definiert ist. wenn das unten im hauptprogramm aufgerufen wird, springt das prog in diese unterprog, arbeitet es ab und springt zurück, wo es angefangen hat.

das "PortB:= %00001100; " setzt den portb der cpu binär (darum vorher das %-zeichen auf aus-aus-aus-aus-ein-ein-aus-aus (00001100)

das "DDRB:= %00001100; " legt fest, ob der port ein ein- oder ausgang ist.

das wars mal für heut - gute n8 bis morgen :wink:
 
ich war heute mal @ labor und hab ein verzinnungsbad zusammengemixt :fresse:

ich hatte ja nur die bestandteile aber nicht die mengenangaben.

hier mal die ersten ergebnisse (tauchzeit max. 10 min):

attachment.php
 

Anhänge

  • zinn01.jpg
    zinn01.jpg
    31,6 KB · Aufrufe: 117
Zuletzt bearbeitet:
Ich habe die uC-Platine fertig bestückt. Nur ein 4Pol-Dip-Schalter fehlt ncoh.

JEtzt muss ich estmal sehen, das ich Pascal lerne......
 
für was brauchst die dip-schalter ?
löt doch eine fassung rein und steck brücken rein - oder mußt du so oft schalten ?

hast oben gesehen ? zinnbad ala CH :fresse: :d
 
hmm...das Zinnbad ist nciht schlecht, aber geht das auch bei feinen Leiterbahnen?

FORMEL! ;)


Die DIP-Schalter sind halt für die addressstellung und zur Portaktivierung.
Kann ich nicht einfach auhc alle "schalter" aus lassen, bei nur einem I2C-IC?
 
hast du pull-up's an den adress-pin's ?

dann mußt du alle schließen, sonst ist die adresse ?7h eingestellt.

formel geb ich erst raus, wenn ich genaueres weiß. ich mach noch ein paar versuche. ich kann dir sagen, daß schwefelsäure drin ist ;)
 
..und die Swefelsäure wird zu S02 als abfallprodukt.......

ich habe den Codierer genauso aufgebaut, wie es in der LCDmultisch.pdf stand!
 
also (schon wieder :fresse:):

ich hab mal die beschreibung gelesen und die haben was geändert: die oberen 5 bit (auch der 4.schalter) ist jetzt als eingang benutzbar - das war früher nicht so. d.h. der 4.schalter ist sinnlos. es sei denn du willst testen/probieren/versuchen ob das funktioniert. du kannst also mit einem befehl den zustand des schalters abfragen.

noch was zu i2c: jeder i2c-ic hat eine vom hersteller vorgegebene grundadresse. diese ist z.b. beim 9555 20h. je nach einstellung der dip schalter liegt der gesamte bereich bei 20h bis 27h. wenn alle schalter zu sind (auf masse) hat der ic die adresse 20h - wenn alle auf sind (auf +Ub) ist die adresse 27h.

heute sind wieder ein paar teile von reichelt gekommen: kühlkörper, elkos, smd-lötzinn (mal eine andere sorte mit silberanteil), nochmal bd139 (versehentlich doppelt bestellt - dann hab ich eben 40 stück da).
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh