Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Jannes FW112

RCLine User

  • »Jannes FW112« ist der Autor dieses Themas

Wohnort: Schleswig-Holstein

Beruf: Schüler

  • Nachricht senden

21

Sonntag, 5. März 2006, 21:32

*kinnladerunterklapp* 8(

Wie ihr vielleicht bemerkt habt hab ich ziemlich wenig Ahnung von sowas, kann denn nicht einmal was einfach sein...

Also ich habe ein fertiges Script, heißt es ich muss es umschreiben? Und muss ich meine Schaltung umbauen und kann ich meine Software weiter benutzen? (Name der Software suche ich gleich raus)

???

Gruß
Jannes :w
getting forward by thinking ahead

[SIZE=1]:tongue:Protzliste:
Act Spatz
Depron Piper Cup[/SIZE]

22

Sonntag, 5. März 2006, 21:50

Hi,

ich habe grade das Datenblatt mal überflogen, wahrscheinlich wirst Du Dein script nicht ändern müssen.

Zwar sind die Register der Chips unterschiedlich, aber das erledigt dann der Compiler für Dich. Ein Problem damit könntest Du bekommen, wenn Dein Script in Assembler geschrieben ist oder "manuell" auf Register zugreift.

Die Chips sind auch PIN-kompatibel, nur der INT0 liegt auf einem anderen Pin. Da wäre ggf. eine Anpassung in der Hardware notwendig, wenn Dein Programm diesen Interrupt nutzt.

Ansonsten sollte es eigentlich passen...

Viele Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Jannes FW112

RCLine User

  • »Jannes FW112« ist der Autor dieses Themas

Wohnort: Schleswig-Holstein

Beruf: Schüler

  • Nachricht senden

23

Montag, 6. März 2006, 16:19

Kennt ihr einen Onlineshop wo es den ATtiny 25 gibt? Reichelt hat den scheinbar nicht.

Würde denn der at90ls2323 auch gehen? (AT 90LS2323 SO8 )

Grüße
Jannes
getting forward by thinking ahead

[SIZE=1]:tongue:Protzliste:
Act Spatz
Depron Piper Cup[/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jannes FW112« (6. März 2006, 16:23)


24

Montag, 6. März 2006, 17:59

ATTiny 45 ist kompatibel zum 25er, hat aber doppelt so viel Speicher.

Gibts bsp da:
http://shop.embedit.de/browse_003001002_83__.php

Grüße
Malte

Jannes FW112

RCLine User

  • »Jannes FW112« ist der Autor dieses Themas

Wohnort: Schleswig-Holstein

Beruf: Schüler

  • Nachricht senden

25

Montag, 6. März 2006, 19:34

Ahja, danke.

Wie sieht es aus mit dem ATtiny13-20PI, es geht mir ja hauptsächlich darum, den Programmer zu behalten. Worauf muss ich denn achten, ich will eine einfache Blinklichtschaltungen machen, ich glaube die brauchen nicht so viel speicher.
Datenblatt ATtiny13-20PI
Der Compiler heißt Bascom-AVR, das Script, dass mir freundlicherweise geschrieben wurde ist folgendes:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Rem 1xL auf b1, 1xL auf b2
Rem  jumper auf b4


Rem hallo jannes, ich hab hier mal ein paar bemerkungen dazu gemacht,die befehle mit beispielen gibts auch in der hilfe
Rem für fragen bin ich gern zu haben, das ist ja dein persönlicher uP - anfängerkurs;-)

Rem speicherplatz für variablen reservieren

Dim A As Integer
Dim B As Integer
Rem c ist die zeit in ms für den 3er blitz
Dim C As Integer
Rem i ist ein bit das entweder mit 0 belegt wird wenn der jumper nicht gesteckt ist oder mit 1 wenn der jumper steckt
Dim I As Bit

Rem werte für variablen festlegen
Rem a und b sind die zeiten für den doppelblitz in ms  , c hab ich für den 3erblitz in verwendung
A = 50
B = 600
C = 35

Rem portb.0 - portb.3 sind jetzt ausgänge, portb.4 ist als eingang definiert: &43210 , 0=eingang, 1 ist ausgang
Config Portb = &B01111


Rem jumper abfragen , der liegt an portb.4 , hat er 5v wird i =1, hat er 0v ist i=0

 I = Pinb.4
Rem wenn der jumper steckt ist i=1 und das programm setzt bei marke "drei:" fort
If I = 1 Then Goto Drei

Rem wenn nicht, gehts hier weiter

Doppel:
Rem portb.1 geht jetzt auf 5v
Portb.1 = 1
Rem jetzt wird  gewartet, der wert von a in millisekunden ,wenn waits stehen würde wären es sekunden
Waitms A
Rem portb.1 geht auf 0v und die led an diesem ausgang hat genau a millisekunden geleuchtet
Portb.1 = 0
Waitms A
Portb.1 = 1
Waitms A
Portb.1 = 0

Waitms B

Portb.2 = 1
Waitms A
Portb.2 = 0
Waitms A
Portb.2 = 1
Waitms A
Portb.2 = 0
Waitms B


Goto Doppel
getting forward by thinking ahead

[SIZE=1]:tongue:Protzliste:
Act Spatz
Depron Piper Cup[/SIZE]

26

Montag, 6. März 2006, 20:12

Hallo Jannes,

bei Deinem Programm fehlt die "Hälfte".

Dein "Goto Drei" hat kein Sprungziel, alle Deklarationen zur CPU und Taktfrequenz fehlen.

Habe jetzt gerade keine Zeit .. aber wenn Du uns genau sagst was der Blinker tun soll, dann schreibe ich Dir später schnell was.

Gruß.
Rainer
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

27

Montag, 6. März 2006, 20:58

Hallo Jannes,

dieses Script wirst Du nicht ändern müssen, es sollte auch auf jedem anderen Pin-kompatiblen Atmel laufen.

Bascom verwenden wir auch in der Einsteigerecke, warum kommst Du nicht rüber und lernst ein wenig mit?

Die Hardware hast Du ja eigentlich schon zu einem guten Teil...

Viele Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Jannes FW112

RCLine User

  • »Jannes FW112« ist der Autor dieses Themas

Wohnort: Schleswig-Holstein

Beruf: Schüler

  • Nachricht senden

28

Montag, 6. März 2006, 21:05

hoppala, es fehlt nur die Hälfte, hab es aus dem Texteditor kopiert.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Rem 1xL auf b1, 1xL auf b2
Rem  jumper auf b4


Rem hallo jannes, ich hab hier mal ein paar bemerkungen dazu gemacht,die befehle mit beispielen gibts auch in der hilfe
Rem für fragen bin ich gern zu haben, das ist ja dein persönlicher uP - anfängerkurs;-)

Rem speicherplatz für variablen reservieren

Dim A As Integer
Dim B As Integer
Rem c ist die zeit in ms für den 3er blitz
Dim C As Integer
Rem i ist ein bit das entweder mit 0 belegt wird wenn der jumper nicht gesteckt ist oder mit 1 wenn der jumper steckt
Dim I As Bit

Rem werte für variablen festlegen
Rem a und b sind die zeiten für den doppelblitz in ms  , c hab ich für den 3erblitz in verwendung
A = 50
B = 600
C = 35

Rem portb.0 - portb.3 sind jetzt ausgänge, portb.4 ist als eingang definiert: &43210 , 0=eingang, 1 ist ausgang
Config Portb = &B01111


Rem jumper abfragen , der liegt an portb.4 , hat er 5v wird i =1, hat er 0v ist i=0

 I = Pinb.4
Rem wenn der jumper steckt ist i=1 und das programm setzt bei marke "drei:" fort
If I = 1 Then Goto Drei

Rem wenn nicht, gehts hier weiter

Doppel:
Rem portb.1 geht jetzt auf 5v
Portb.1 = 1
Rem jetzt wird  gewartet, der wert von a in millisekunden ,wenn waits stehen würde wären es sekunden
Waitms A
Rem portb.1 geht auf 0v und die led an diesem ausgang hat genau a millisekunden geleuchtet
Portb.1 = 0
Waitms A
Portb.1 = 1
Waitms A
Portb.1 = 0

Waitms B

Portb.2 = 1
Waitms A
Portb.2 = 0
Waitms A
Portb.2 = 1
Waitms A
Portb.2 = 0
Waitms B


Goto Doppel


Drei:


Portb.1 = 1
Waitms C
Waitms C
Portb.1 = 0
Waitms C
Waitms C
Waitms C
Portb.1 = 1
Waitms C
Waitms C
Portb.1 = 0
Waitms C
Waitms C
Waitms C
Waitms C
Portb.2 = 0
Waitms C
Portb.1 = 1

Waitms C
Waitms C
Waitms C
Waitms C
Portb.2 = 1

Waitms C
Waitms C
Portb.2 = 0

Waitms C
Waitms C
Waitms C
Portb.2 = 1

Waitms C
Waitms C
Portb.2 = 0
Waitms C
Waitms C
Portb.1 = 0
Waitms C
Waitms C
Waitms C
Portb.2 = 1

Waitms C
Waitms C
Goto Drei

Rem das wars schon, jetzt nur noch am compiler den passenden chip und die verwendete taktfrequenz einstellen,
Rem kompilieren, den programmer mit der schaltung verbinden und starten
Rem das programm startet dann sobald der chip saft hat.
End                                                         'end program

Ich habe schon einen At90s2343 10pi der mit dem Script läuft, nur habe ich Schwierigkeiten den nachzubestellen, deshalb suche ich Ersatz. Da ich mich mit der Hardware so wenig auskenne wollte ich Wissen ob der ATtiny13-20PI als Ersatz auf dem selben Programmer mit dem selben Script läuft. Der Link zum Datenblatt steht oben.

Grüße
Jannes
getting forward by thinking ahead

[SIZE=1]:tongue:Protzliste:
Act Spatz
Depron Piper Cup[/SIZE]

29

Montag, 6. März 2006, 21:31

Wer hat denn das programmiert? Wäre
Waitms 3*C
nicht ein bißchen klüger als
Waitms C
Waitms C
Waitms C

;)

Grüße
Malte

30

Montag, 6. März 2006, 22:01

Ja, das Programm müsste auch auf dem Tiny13 laufen.

Ein paar Tipps zum Code:
Den Sprung Drei: -> Goto Drei: kannst Du auch durch Do...Loop ersetzen

Waitms C
Waitms C
Waitms C

kannst Du auch mit einer Schleife machen...

Oben, bei den DiM´s: DIM N as word

Und dann:

For N=1 to 3
Waitms C
next N

Oder auch:

N=C*3
Waitms N

(@Malte: Waitms C*3 wäre zwar klüger, frisst der Compiler aber leider nicht... ;) )

Viele Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Torsten_G« (6. März 2006, 22:01)


31

Montag, 6. März 2006, 22:03

Zitat

Original von DrM
Wer hat denn das programmiert? Wäre
Waitms 3*C
nicht ein bißchen klüger als
Waitms C
Waitms C
Waitms C

;)

Grüße
Malte


Ich hätte das auch komplett anders programmiert .. aber ich denke mal, sein Kumpel wollte es ihm einfach und vor allen Dingen "für ihn versteh- und änderbar" machen.

Nun zu Dir Jannes:

Habe Dein Prog gerade mal durch den Bascom-Compiler gejagt. Hatte natürlich den Fehler "Out of SRAM" wie immer beim Tiny13.
Ist ein Fehler in der "attiny13.dat" von Bascom. Kann man aber umgehen, indem man folgende Zeile einfügt:

Quellcode

1
2
$regfile "attiny13.dat"
$HWSTACK=16  '<---------- die Zeile einfügen


Standardmäßig ist der Hardwarestack =32. Ist zu viel für den "Kleinen" ;)

Nach dem Durchlauf hatte ich eine Belegung des Attiny13 von 50 %.
Reicht also dicke.

Gruß.
Rainer
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

32

Montag, 6. März 2006, 22:19

Hab das Programm nur mal ueberflogen. Nur auch dabei wuerde ich sagen: Da hat's einer nicht besser verstanden.
Sowas kenn ich als Spagetticode. Absolut sinnlos. Laesst sich auch in Bascom mit wenigen Schleifen viel einfacher und verstaendlicher programmieren. Und braucht dann sicher keine 50% im Tiny.
Gruss
Thomas

🖖
So long, and thanks for all the fish.


Jannes FW112

RCLine User

  • »Jannes FW112« ist der Autor dieses Themas

Wohnort: Schleswig-Holstein

Beruf: Schüler

  • Nachricht senden

33

Montag, 6. März 2006, 22:28

Danke, das ist doch mal ein Wort, ich starte gleich die Massenbestellung ;-)

Das mit

Quellcode

1
2
$regfile "attiny13.dat"
$HWSTACK=16  '<---------- die Zeile einfügen

habe ich noch nicht ganz verstanden, wo muss ich das einfügen?
Naja, ich werde mich wohl mal melden wenn ich soweit bin...

Der Zweck heiligt für mich die Mittel (in diesem Fall zumindest), deshalb ist es mir egal ob ich für sowas einfaches 1% oder 99% belege, aber wenn ihr Verbesserungen habt, nehme ich sie gerne an! Stillstand ist schließlich Rüchschritt...

Mir ist halt wichtig, dass ich das mal selber auf die Reihe bekomme, hab in Informatik wohl zu viel im RC-Line rumgeguckt :D

Gruß
Jannes
getting forward by thinking ahead

[SIZE=1]:tongue:Protzliste:
Act Spatz
Depron Piper Cup[/SIZE]

34

Montag, 6. März 2006, 22:36

So, hab's mal ein bißchen "gerade gezogen".
Nur ganz schnell .. geht noch bedeutend effektiver ... aber für Deine Zwecke sollte es reichen.
Belegt im Tiny jetzt noch 36%
Habe die Rem's mal rausgenommen, damit hier im Forum nicht so viel "ramsch" drinsteht ;)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$regfile "attiny13.dat"

'Angabe der Taktfrequenz (1Mhz)
$crystal = 1000000                                          'die Taktfrequenz musst Du noch richtig setzen
$hwstack = 16

Dim A As Byte
Dim B As Integer
Dim C As Byte
Dim Zaehler As Byte
Dim Zeit2 As Byte
Dim Zeit3 As Byte
Dim Zeit4 As Byte

A = 50
B = 600
C = 35

Zeit2 = C * 2
Zeit3 = C * 3
Zeit4 = C * 4

Config Portb = &B01111

   If Pinb.4 = 0 Then
      Do
         For Zaehler = 1 To 2
            Portb.1 = 1
            Waitms A
            Portb.1 = 0
            Waitms A
            Portb.1 = 1
            Waitms A
            Portb.1 = 0
            Waitms B
         Next Zaehler
      Loop
   Else
      Do
         Portb.1 = 1
         Waitms Zeit2
         Portb.1 = 0
         Waitms Zeit3
         Portb.1 = 1
         Waitms Zeit2
         Portb.1 = 0
         Waitms Zeit4
         Portb.2 = 0
         Waitms C
         Portb.1 = 1
         Waitms Zeit4
         Portb.2 = 1
         Waitms Zeit2
         Portb.2 = 0
         Waitms Zeit3
         Portb.2 = 1
         Waitms Zeit2
         Portb.2 = 0
         Waitms Zeit2
         Portb.1 = 0
         Waitms Zeit3
         Portb.2 = 1
         Waitms Zeit2
      Loop
   End If
End                                                         'end program


Wie gesagt .. mal schnell drübergesehen ... da kann man bestimmt noch einiges straffen, wenn ich genau wüsste, was wie blinken soll.
Die "Doppelblinker"-Schleife kann man noch kürzen (auf kosten von Speicherplatz) und bei der "Dreifachblinker" sehe ich einfach keine Gesetzmäßigkeit um das in Schleifen unterzubringen. Mit "Data" würde es gehen .. ist halt die Frage .. willst Du's schön, oder Platzsparend ;)

Gruß.
Rainer
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Gwydion« (6. März 2006, 23:23)


35

Montag, 6. März 2006, 22:45

Und wahrscheinlich kannst du die erste Schleife auch noch voellig weglassen und dafuer den letzten wait veraendern.
Dafuer sollte vielleicht eine Schleife aussen rum. Denn sonst ist die Blinkerei schnell am Ende angelangt. ;)
Gruss
Thomas

🖖
So long, and thanks for all the fish.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Thomas_R.« (6. März 2006, 22:45)


36

Montag, 6. März 2006, 22:51

Zitat

Original von Thomas_R.
Und wahrscheinlich kannst du die erste Schleife auch noch voellig weglassen und dafuer den letzten wait veraendern.
Dafuer sollte vielleicht eine Schleife aussen rum. Denn sonst ist die Blinkerei schnell am Ende angelangt. ;)


Huch ... Du siehst aber auch alles .. hatte ich vor lauter "waitms" ganz übersehen ... aber EIN MAL hätt's getan *hehe*
Hab's geändert.

[EDIT]
HA ! Erwischt ;)
Die äußere Schleife ist gar nicht nötig, da das Prog nach der Abfrage des I/O-Pins in einer von den beiden Schleifen drinhängt ==[]
[/EDIT]

Gruß.
Rainer
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Gwydion« (6. März 2006, 23:22)


37

Montag, 6. März 2006, 23:46

Zitat

[EDIT]
HA ! Erwischt
Die äußere Schleife ist gar nicht nötig, da das Prog nach der Abfrage des I/O-Pins in einer von den beiden Schleifen drinhängt
[/EDIT]

Hoppala. Hast recht. Aber aus den Schleifen kommst du wohl nicht mehr raus. Bestimmt nicht im Sinne des Erfinders. :D
Gruss
Thomas

🖖
So long, and thanks for all the fish.


38

Dienstag, 7. März 2006, 00:42

Zitat

Original von Thomas_R.

Zitat

[EDIT]
HA ! Erwischt
Die äußere Schleife ist gar nicht nötig, da das Prog nach der Abfrage des I/O-Pins in einer von den beiden Schleifen drinhängt
[/EDIT]

Hoppala. Hast recht. Aber aus den Schleifen kommst du wohl nicht mehr raus. Bestimmt nicht im Sinne des Erfinders. :D


Doch, ist es wohl, da im Originalprogramm genauso.
Ist wohl einfach nur ein "unintelligenter" Blinker, der vor dem "Power on" mit einer Steckbrücke "konfiguriert" wird und dann einfach blinkt, bis das Akku röchelt ;)
Bei meinem Blinker auf Attiny13-Basis blinkts über 4 Kanäle und wird außerdem noch 1 Empfängerkanal abgefragt, der die einzelnen Modi umschaltet. Du weißt wahrscheinlich noch, als ich im Anfängerforum nach Transistoren gefragt habe .. dafür waren die .. übrigens nochmal danke für den Tipp :)
Aber wenn Jannes einfach nur einen Blinker braucht, ist das bei dem Preis eines Attiny13 auch kein Beinbruch, ihn einfach nur statisch blinken zu lassen.
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gwydion« (7. März 2006, 00:43)


Eheli

RCLine User

Wohnort: Kindberg

Beruf: Elektrotechniker

  • Nachricht senden

39

Dienstag, 7. März 2006, 09:36

Hallo Leute,

das umständliche programm hab ich verbrochen :evil:

ich wollte dem jannes das mit so wenig befehlen wie möglich erklären,
sonst ist sowas eigentlich auch nicht mein stil :D
mittlerweile wird er schon einiges dazugelernt haben, ist ja doch schon einige zeit her, damals war ja der 90s23243 noch im programm von atmel ;)

gefordert war eigentlich nur eine schaltung die mit 2 leds einen doppelblinker oder wahlweise einen blinker der diese polizeiblaulichter mit 2 blauen leds immitiert, wobei die exakten zeiten damals auch nur so hingeschätzt wurden und deshalb leicht von ihm veränderbar sein sollten.
also das mit den endlosschleifen hat schon seine richtigkeit.

der tiny 25 ist eigenartigerweise fast nirgends erhältlich, aber mit dem tiny13 gehts auch. der speicher langt für sowas allemal und wenn man die zeiten als konstanten definiert bleibt auch sram frei.
h.

40

Dienstag, 7. März 2006, 09:44

Zitat

das umständliche programm hab ich verbrochen :evil:

:D :w
Gruss
Thomas

🖖
So long, and thanks for all the fish.