Geocaching & GPS location based games

Thema anzeigen - Fragen zu Programmiergeräten und zur Programmierung der uC


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 315 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7 ... 32  Nächste


Autor Nachricht
BeitragVerfasst: Di 26. Jan 2010, 21:09 
Offline
Geoguru
Benutzeravatar

Registriert: So 29. Okt 2006, 12:04
Beiträge: 4687
Wohnort: 17449 Karlshagen
theo_testperson hat geschrieben:
es ist also so, das ich in boscom keine fusebits setzen, aber das programm als hex file kompilieren kann.
d.h ich kopier mir das programm aus dem kochbuch , füge es in eine neue .bas datei ein und geh dann auf compile programm ?
[das geht bei mir natürlich auch nicht, aber vielleicht ist der weg ja richtig]

sorry für meine andauernden fragen aber ich versteh leider einfach nicht wieso es nicht klappt bzw wo ich jetzt schon wieder nen fehler mache.


Theo, mal ein Beispiel unter Nutzung von Bascom:
Du kopierst das Programm aus dem Kochbuch und erstellst eine bas-File. Wenn nach dem Kompilern (F7) kein Fehler gefunden wird kannst Du bei Bascom mittels F4 das Programm in den Tiny schreiben. Falls bei den Fuses was geändert werden muß geht das von Bascom aus auch sehr gut. Allerdings ist der Unterschied, daß ich einen selbstgebauten Adapter nutze. So, nun kannst Du weiter fragen, irgendwann werden wir schon Erfolg haben.

_________________
Es gibt Cacher, die hat der liebe Gott erst kurz vor Feierabend gemacht!
Moin, moin! Achim & Tina


Nach oben
 Profil  
 
BeitragVerfasst: Mi 27. Jan 2010, 22:12 
Offline
Geocacher
Benutzeravatar

Registriert: So 6. Jan 2008, 23:38
Beiträge: 60
Wohnort: Baden-Baden / Trier
ich glaub ich gebs auf.
bei mir klappt nichtmal das kompilieren in boscom
egal welches programm ich reinkopiere, er findet immer irgendwelche fehler.
als beispiel.
ich kopiere das programm nachtaktiver Blinker aus dem kochbuch [6.1.2] in mein .bas file
Zitat:
1 ' ************************************
2 ' *** ***
3 ' *** Reaktiv-Tiny v0.1 24/11/2005 ***
4 ' *** ***
5 ' ************************************
6
7 $regfile = "ATtiny13.DAT"
8 $crystal = 113000 'Reale Frequenz des internen 128kHz-Oszillators
9
10 Config Portb = &B00011000 'Pinb.3 und .4 auf 'Ausgang', Rest auf 'Eingang' schalten
11 Portb = &B11100111 'Pullups zuschalten, au¼er fÄur Pinb.3 und .4
12 Stop Adc 'A/D-Wandler abschalten, um Strom zu sparen
13 Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
14
15 Dim A As Byte
16 Dim B As Byte
17 Dim Led_ladezustand As Bit
18 Dim Hell As Bit
19
20 Do
21 Gosub Led_abfrage
22
23 If Led_ladezustand = 0 Then
24 Hell = 1 'Bei Licht Merker setzen
25 End If
26 If Hell = 1 And B < 255 Then
27 B = B + 1 'Wenn Merker gesetzt wurde, ZÄahler fÄur Licht dauer erhÄohen (max. 255)
28 End If
29 If Led_ladezustand = 1 And Hell = 1 And B < 50 Then
30 Gosub Blinken 'Wenn es wieder dunkel ist und der Lichtimpuls nur kurz war, dann blinken
31 End If
32 If Led_ladezustand = 1 Then 'Bei Dunkelheit Merker und ZÄahler fÄur Lichtdauer
33 Hell = 0 'lÄoschen
34 B = 0
35 End If
36 Loop
37
38 Led_abfrage:
39 Portb.3 = 0 'Portb.3 auf Masse schalten
40 Portb.4 = 1 'Portb.4 auf +Ub schalten, um die LED zu 'laden'
41 Waitus 1 'Ladezeit, kann ggf. noch verkleinert werden
42 Config Portb.4 = Input 'Portb.4 nun zwecks Abfrage der LED-Ladung auf 'Eingang schalten
43 Portb.4 = 0 'Pullup abschalten, sonst geht's nicht!
44 Waitms 20 'Entladezeit 20 ms - je kleiner, je unempfindlicher
45 Led_ladezustand = Pinb.4 'Ladezustand einlesen: '1' -> dunkel, '0' -> hell
46 Config Portb.4 = Output 'Portb.4 wieder auf Ausgang schalten
47 Portb.4 = 0 'Portb.4 auf Masse schalten
48 Return
49
50 Blinken:
51 For A = 1 To 10
52 Portb.3 = 1
53 Waitms 50
54 Portb.3 = 0
55 Waitms 500
56 Next A
57 Return
58
59 End


wenn ich jetzt auf F7 drücke geht zwar das compiling fenster auf, aber es geht nach 2 sec mit dem festgelegten fehler sound wieder zu.

als error werden diese zwei zeilen ausgegeben:
Error: 1 Line: 1 Unknown satement [1] , in File: G:\nachtaktiverblinker.bas
Error: 1 Line: 2 Unknown satement [2] , in File: G:\nachtaktiverblinker.bas

wenn ich jetzt einfach ein anderes programm aus dem kochbuch kopiere, z.b. das grundprogram [6.1.1]
Zitat:
1 ' ************************************
2 ' *** ***
3 ' *** Reaktiv-Tiny v0.1 20/11/2005 ***
4 ' *** ***
5 ' ************************************
6
7 $regfile = "ATtiny13.DAT"
8 $crystal = 113000 'Reale Frequenz des internen 128kHz-Oszillators
9
10 Config Portb = &B00011000 'Pinb.3 und .4 auf 'Ausgang', Rest auf 'Eingang' schalten
11 Portb = &B11100111 'Pullups zuschalten, au¼er fÄur Pinb.3 und .4
12 Stop Adc 'A/D-Wandler abschalten, um Strom zu sparen
13 Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
14
15 Dim A As Byte
16 Dim Hell_dunkel As Bit
17
18 Do
19 Gosub Led_abfrage
20
21 If Hell_dunkel = 0 Then
22 For A = 1 To 10
23 Portb.3 = 1
24 Waitms 50
25 Portb.3 = 0
26 Waitms 500
27 Next A
28 End If
29
30 Loop
31
32 Led_abfrage:
33 Portb.3 = 0 'Portb.3 auf Masse schalten
34 Portb.4 = 1 'Portb.4 auf +Ub schalten, um die LED zu 'laden'
35 Waitus 1 'Ladezeit, kann ggf. noch verkleinert werden
36 Config Portb.4 = Input 'Portb.4 nun zwecks Abfrage der LED-Ladung auf 'Eingang' schalten
37 Portb.4 = 0 'Pullup abschalten, sonst geht's nicht!
38 Waitus 1500 'Entladezeit - je kleiner, je unempfindlicher
39 Hell_dunkel = Pinb.4 'Ladezustand einlesen
40 Config Portb.4 = Output 'Portb.4 wieder auf Ausgang schalten
41 Portb.4 = 0 'Portb.4 auf Masse schalten
42 Return
43
44 End
und versuche das zu kompilieren, also f7 drücke, kommen genau die gleichen errors.

kann es daran liegen das ich eine andere boscom version hab?
ich hab nur die version 1.11.9.8 im netz gefunden
ich verlier langsam den glauben an mein technik verständnis


Nach oben
 Profil  
 
BeitragVerfasst: Mi 27. Jan 2010, 22:21 
Offline
Geocacher
Benutzeravatar

Registriert: Fr 30. Mai 2008, 23:20
Beiträge: 203
Wohnort: Wadersloh, NRW
Du hast doch wohl nicht etwa die Zeilennummern am Anfang jeder Zeile mit reinkopiert, oder? :D

Bascom ist zwar Basic, aber kein C64 ;)


Nach oben
 Profil  
 
BeitragVerfasst: Mi 27. Jan 2010, 22:49 
Offline
Geocacher
Benutzeravatar

Registriert: So 6. Jan 2008, 23:38
Beiträge: 60
Wohnort: Baden-Baden / Trier
aha..
sollte es also doch so einfach sein?

hmm...gut das erklärt natürlich einiges.
na hoffentlich bin ich nicht der erste dem das passiert ist.
tausend dank :gott:


Nach oben
 Profil  
 
BeitragVerfasst: Do 28. Jan 2010, 11:59 
Offline
Geoguru
Benutzeravatar

Registriert: So 29. Okt 2006, 12:04
Beiträge: 4687
Wohnort: 17449 Karlshagen
theo_testperson hat geschrieben:
aha..
sollte es also doch so einfach sein?

hmm...gut das erklärt natürlich einiges.
na hoffentlich bin ich nicht der erste dem das passiert ist.
tausend dank :gott:

Woher hast Du denn überhaupt die Zeilennummern? Im Kochbuch sind doch keine.

_________________
Es gibt Cacher, die hat der liebe Gott erst kurz vor Feierabend gemacht!
Moin, moin! Achim & Tina


Nach oben
 Profil  
 
BeitragVerfasst: Fr 29. Jan 2010, 00:01 
Offline
Geocacher
Benutzeravatar

Registriert: So 6. Jan 2008, 23:38
Beiträge: 60
Wohnort: Baden-Baden / Trier
doch, in meiner kochbuchversion [Stand: 20. September 2009] stehen die in jedem programm.

ich hab es inzwischen ohne die zeilenzahlen im programmcode hinbekommen das hex file in boscom zugenerieren und es mit avr studio zu übertragen.
jetzt kann ich endlich richtig anfangen.

ich hab gestern mal noch ein paar programme getestet und die haben eigentlich alle funktioniert.
dann hab ich mich an das programm von schittlerwiller aus dem 144seiten fred gemach. es geht dabei um diesen code
Code:
'============================================================
'
' ***********************************************************
' ***                                                     ***
' *** Reaktiv-Tiny v0.5 2006-02-25                   (AP) ***
' ***                                                     ***
' *** Morsecodeabfrage eines Morsezeichens mit            ***
' *** anschließender Ausgabe von bis zu 64 Morsezeichen.  ***
' *** Es können Koordinaten oder beliebiger Text          ***
' *** ausgegeben werden.                                  ***
' *** Die Eingabegeschwindigkeit wird mit der ersten      ***
' *** empfangenen Zeichenlänge bestimmt                   ***
' ***                                                     ***
' ***                                                     ***
' *** --------------- Einstellungen --------------------- ***
' ***                                                     ***
' *** Fusebit H:    0                                     ***
' *** Fusebit G:    0                                     ***
' *** Fusebit F:    1                                     ***
' *** Fusebit E:    1                                     ***
' *** Fusebit DCBA: 1011                                  ***
' ***                                                     ***
' *** Beachtet das Fusebit G. Es muss auf 0 stehen!       ***
' ***                                                     ***
' *** Unter 'Options' ' Compiler' 'Chip'                  ***
' *** den "HW Stack" runterstellen. z.B. auf 6            ***
' ***                                                     ***
' ***********************************************************
'
' µC: ATtiny13V
'
'============================================================
'
$regfile = "ATtiny13.DAT"
$crystal = 113000              'Reale Frequenz des internen 128kHz-Oszillators
$hwstack = 6
'
Config Portb = &B00011000      'Pinb.3 und .4 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = &B11100111             'Pullups zuschalten, außer für Pinb.3 und .4
'
Stop Adc                       'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac                        'Analog-Komparator abschalten, um Strom zu sparen
'
'
'Anmerkung zur Deklaration: bin sparsam mit den Variablen umgegangen,
'd.h. diese werden zum Teil im Programm mehrfach für verschiedene Aufgaben verwendet.
'Grund: ich kenne das "Drosseln" des HW Stack erst seit es hier im Fred stand. Dank an Gonzoarts.
Dim Hell As Bit
Dim Vhell As Bit
Dim Ok As Bit
Dim A As Byte
Dim B As Byte
Dim Ein As Integer
Dim Bx As Byte
Dim Z As Byte
Dim D1 As Byte
Dim D2 As Integer
'
'
'
'
' Es können alle Buchstaben und Zahlen gesendet werden, da diese maximal 5 Zeichen lang sind.
' Ausgabe der Zeichen aus dem EEPROM mit Länge
'                                             
'
'
' dit = kurz = . = 0   
' dah = lang = - = 1
'
'             
'            765 43210                             
'            \_/ \___/                             
'             |    |                               
'           Länge  |                               
'                  |                               
'            Morsezeichen v.rechts (rückwärts)     
'
'     Morse   Bit v.r.
'1 = .---- = 100|11110
'2 = ..--- = 100|11100
'3 = ...-- = 100|11000
'4 = ....- = 100|10000
'5 = ..... = 100|00000
'6 = -.... = 100|00001
'7 = --... = 100|00011
'8 = ---.. = 100|00111
'9 = ----. = 100|01111
'0 = ----- = 100|11111
'
'N = -.    = 001|00010
'E = .     = 000|00000
'
'KA (Spruch Anfang) = -.-.- = 100|10101
'AR (Spruch Ende)   = .-.-. = 100|01010
'
'Wortabstand einfügen mit 111|11111  (FF)
'
'
' Übertragungsrate
' 1 WPM: 1 dit = 1200 ms
' 5 WPM: 1 dit =  240 ms
'10 WPM: 1 dit =  120 ms
'20 WPM: 1 dit =   60 ms
'
'
'==> Übertragungsrate festlegen, hier 5 Wörtern pro Minute (WPM)
D1 = 240                                    'D1 entspricht der Länge eines dit in Millisekunden
D2 = 480                                    'D2 entspricht der doppelten Länge eines dit
'
'==> Abgefragtes Zeichen festlegen
Ein = &B0000000000111000                    'Beispiel: SOS  ...---...   
'
'
Ok = 1
Gosub Morsen                                'beim Start das ganze mal testweise Morsen
'
' Morsezeichen - Abfrage:
Do
   Gosub Led_abfrage
   If Hell = 1 Then Vhell = 1               'Bei Licht Merker setzen
   If Vhell = 1 And B < 255 Then B = B + 1  'Wenn Merker gesetzt wurde, Zähler für Lichtdauer erhöhen (bis max. 255)
   If Hell = 0 Then
      If Vhell = 1 Or B = 255 Then          'Übergang zu Dunkel
         If Z = 0 Then
            Ok = 1                          'Neues Spiel, neues Glück
                                            'Festlegen der Grenzdauer. Diese entscheidet, ob ein dit oder dah eingegeben wurde.
           '==> Leider muss man hier "von Hand" eintragen, ob das erste Zeichen dit oder dah ist. Bei dit B), bei dah A) auskommentieren
           'Die benötigte If-Abfrage hat im 1k Programmspeicher des ATtiny13V keinen Platz mehr.
                                       'A) erstes abgefragtes Zeichen ist ein dit
            If B < 127 Then            'A) dies sollte nicht zu lange sein
               Bx = B * 1.7            'A) Grenzdauer Bx durch Länge des ersten dit festlegen
            Else                       'A)
               Ok = 0                  'A) das war zu lange fürs erste dit
            End If                     'A)
                                       'B) erstes abgefragtes Zeichen ist ein dah
'            Bx = B / 2                'B) Grenzdauer Bx durch Länge des ersten dah festlegen
         End If
         If B < Bx Then
            If Ein.z = 1 Then Ok = 0   'dit empfangen, wenn Ein.z = 0, dann richtig
         Else
            If Ein.z = 0 Then Ok = 0   'dah empfangen, wenn Ein.z = 1, dann richtig
         End If
         Z = Z + 1
         If Z = 9 Or Ok = 0 Then       'Auswerten wenn Falsch ODER Anzahl Zeichen erreicht
            Gosub Morsen               '==> Z auf die Anzahl abgefragter Zeichen einstellen
         End If
      End If
   End If
   If Hell = 0 Then                    'Bei Dunkelheit Merker und Zähler für Lichtdauer löschen
      Vhell = 0
      B = 0
   End If
Loop


Morsen:
   Waitms 500                          'Pause, sonst ist das erste Zeichen schwer zu lesen
   If Ok = 1 Then                      'Morsezeichen senden
      For Bx = 0 To 36                 '=> Länge anpassen!
         Readeeprom A , Bx             'in A steht der zu morsende Code (Bit 0 bis 4 dit und dah, Bit 5 bis 7 die Anzahl
         Z = 0
         Z.0 = A.5                     'Zeichenlänge steht in den vorderen 3 Bit (A.5 bis 7)
         Z.1 = A.6
         Z.2 = A.7
         If Z = 7 Then                 'bei FF einen Wortabstand einfügen (4dit = 7dit - 3dit)
            Waitms D2
            Waitms D2
         Else                          'Zeichenlänge: 1 bis 5  (0 bis 4)
            Gosub Licht
         End If
      Next Bx
   Else                                ' IRRUNG senden
       If B < 255 Then                 ' aber nicht, wenn die Dämmerung eintritt bzw. ein langes Lichtsignal anlag
          Z = 7
          A = 0                        ' Irrung  =  ........ =  0
          Gosub Licht
       End If
   End If
   'A = 0
   B = 0
   Z = 0
Return


Licht:
   For B = 0 To Z
      Portb.3 = 1                      'LED an
      Waitms D1                        '1  . dit
      If A.b = 1 Then
         Waitms D2                     '3  - dah
      End If
      Portb.3 = 0                      'LED aus
      Waitms D1                        '1 dit  Pause
   Next B
   Waitms D2                           '+2 dit Pause nach Ziffer
Return


Led_abfrage:
   Portb.3 = 0                         'Portb.3 auf Masse schalten
   Portb.4 = 1                         'Portb.4 auf +Ub schalten, um die LED zu 'laden'
   Waitus 1                            'Ladezeit 1 µs, kann ggf. noch verkleinert werden
   Config Portb.4 = Input              'Portb.4 nun zwecks Abfrage der LED-Ladung auf 'Eingang' schalten
   Portb.4 = 0                         'Pullup abschalten, sonst geht's nicht!
   Waitms 20                           'Entladezeit 20 ms - je größer, desto weniger Licht genügt (je kleiner, je unempfindlicher)
   If Pinb.4 = 0 Then                  'Ladezustand einlesen: '1' -> dunkel, '0' -> hell
      Hell = 1
   Else
      Hell = 0
   End If
   Config Portb.4 = Output             'Portb.4 wieder auf Ausgang schalten
   Portb.4 = 0                         'Portb.4 auf Masse schalten
Return


End


damit das funktioniert muss ich ja das eeprom mit folgendem code beschreiben.
Code:
'============================================================
'
' ***********************************************************
' ***                                                     ***
' *** Reaktiv-Tiny EEPROM schreiben  2006-02-25      (AP) ***
' ***                                                     ***
' ***                                                     ***
' *** Beachtet das Fusebit G. Es muss auf 0 stehen!       ***
' ***                                                     ***
' *** Fusebit H:    0                                     ***
' *** Fusebit G:    0                                     ***
' *** Fusebit F:    1                                     ***
' *** Fusebit E:    1                                     ***
' *** Fusebit DCBA: 1011                                  ***
' ***                                                     ***
' ***                                                     ***
' ***********************************************************
'
' µC: ATtiny13V
'
'============================================================
'
$regfile = "ATtiny13.DAT"
$crystal = 113000             'Reale Frequenz des internen 128kHz-Oszillators
$hwstack = 6
'
'Config Portb = &B00011000     'Pinb.3 und .4 auf 'Ausgang', Rest auf 'Eingang' schalten
'Portb = &B11100111            'Pullups zuschalten, außer für Pinb.3 und .4
'
Stop Adc                      'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac                       'Analog-Komparator abschalten, um Strom zu sparen
'
'
Dim A As Byte
'
'
'--------------------------------------------------------------
' Bitwert 0=dit, 1=dah
' das Byte von rechts lesen, da Schleife von 0 bis z läuft
' z ist die Zeichenlänge minus eins, die in den oberen 3 Bit festegelgt wird
'
'     Morse  Bit v.r.       Hex   Dec
'1 = .---- = 100|11110   1  9E    158
'2 = ..--- = 100|11100   2  9C    156
'3 = ...-- = 100|11000   3  98    152
'4 = ....- = 100|10000   4  90    144
'5 = ..... = 100|00000   5  80    128
'6 = -.... = 100|00001   6  81    129
'7 = --... = 100|00011   7  83    131
'8 = ---.. = 100|00111   8  87    135
'9 = ----. = 100|01111   9  8F    143
'0 = ----- = 100|11111   0  9F    159
'
'N = -.    = 001|00001   N  21     33
'E = .     = 000|00000   E  00      0
'
' Pause    = 111|11111   0  FF    255
'
' KA (Spruch Anfang) = -.-.- = 100|10101   95    149
' AR (Spruch Ende)   = .-.-. = 100|01010   8A    138
'
'
'
'Wortabstand ==             FF
'H = ....  = 011|00000   H  60     96
'A = .-    = 001|00010   A  22     34
'P = .--.  = 011|00110   P  66    102
'P   .--.  = 011|00110   P  66    102
'Y = -.--  = 011|01101   Y  6D    109
'Wortabstand ==             FF
'H = ....  = 011|00000   H  60     96
'U = ..-   = 010|00100   U  44     68
'N = -.    = 001|00001   N  21     33
'T = -     = 000|00001   T  01      1
'I = ..    = 001|00000   I  20     32
'N = -.    = 001|00001   N  21     33
'G = --.   = 010|00011   G  43     67
'Wortabstand ==             FF
'Ende                       8A
'
'
'
'=============================================
' Beispiel Cache: N49.12.345 E008.56.789
'=============================================
'
'
A = &B11111111           ' Pause
Writeeeprom A , 0
A = &B10010101           ' KA (Spruch Anfang) = -.-.-
Writeeeprom A , 1
A = &B11111111           ' Pause
Writeeeprom A , 2
A = &B00100001           ' N = -.
Writeeeprom A , 3
A = &B10010000           ' 4 = ....-
Writeeeprom A , 4
A = &B10001111           ' 9 = ----.
Writeeeprom A , 5
A = &B10011110           ' 1 = .----
Writeeeprom A , 6
A = &B10011100           ' 2 = ..---
Writeeeprom A , 7
A = &B10011000           ' 3 = ...--
Writeeeprom A , 8
A = &B10010000           ' 4 = ....-
Writeeeprom A , 9
A = &B10000000           ' 5 = .....
Writeeeprom A , 10
A = &B11111111           ' Pause
Writeeeprom A , 11
A = &B00000000           ' E = .
Writeeeprom A , 12
A = &B10011111           ' 0 = -----
Writeeeprom A , 13
A = &B10011111           ' 0 = -----
Writeeeprom A , 14
A = &B10000111           ' 8 = ---..
Writeeeprom A , 15
A = &B10000000           ' 5 = .....
Writeeeprom A , 16
A = &B10000001           ' 6 = -....
Writeeeprom A , 17
A = &B10000011           ' 7 = --...
Writeeeprom A , 18
A = &B10000111           ' 8 = ---..
Writeeeprom A , 19
A = &B10001111           ' 9 = ----.
Writeeeprom A , 20
A = &B11111111           ' Pause
Writeeeprom A , 21
A = &B01100000           ' H = ....
Writeeeprom A , 22
A = &B00100010           ' A = .-
Writeeeprom A , 23
A = &B01100110           ' P = .--.
Writeeeprom A , 24
A = &B01100110           ' P = .--.
Writeeeprom A , 25
A = &B01101101           ' Y = -.--
Writeeeprom A , 26
A = &B11111111           ' Pause
Writeeeprom A , 27
A = &B01100000           ' H = ....
Writeeeprom A , 28
A = &B01000100           ' U = ..-
Writeeeprom A , 29
A = &B00100001           ' N = -.
Writeeeprom A , 30
A = &B00000001           ' T = -
Writeeeprom A , 31
A = &B00100000           ' I = ..
Writeeeprom A , 32
A = &B00100001           ' N = -.
Writeeeprom A , 33
A = &B01000011           ' G = --.
Writeeeprom A , 34
A = &B11111111           ' Pause
Writeeeprom A , 35
A = &B10001010           ' AR (Spruch Ende)   = .-.-. =
Writeeeprom A , 36

End


ich kann aber meinen avrisp mk2 unter boscom nicht richtig benutzen und bekomme deshalb über boscom das eeprom nicht richtig beschrieben.
unter avr studio gibt es die option ein hex file auf das eeprom zu brennen.
wenn ich aber ein in boscom compilliertes hex file mit dem programm für der eeprom versuche, bekomme ich diese fehlermeldung:

"the contents of the HEX file does not fit in the selected devide"

mir ist bewusst das ich hier jetzt schon wieder eine völlig neue baustelle aufmache, aber warscheinlich hab ich nur wieder irgendwelche zahlem mit kopiert und ich blamier mich hier wieder. wie müsste ich das hex file in boscom denn erstellen um es in avr studio ins eeprom zu brennen oder kann es auch an irgendwelchen nicht richtig gesetzten fusebits liegen, die bezeichnungen fusebit G existieren in avr studio nämlich leider nicht und ich muss mir immer die beschreibung der fusebits in boscom durchlesen und dann vergleichen welche beschreibung in avr studio dem am nächsten kommt?

nochmal vielen, vielen dank für eure hilfe und eure geduld mit mir.


Nach oben
 Profil  
 
BeitragVerfasst: Sa 30. Jan 2010, 17:49 
Offline
Geowizard

Registriert: Mo 3. Apr 2006, 10:15
Beiträge: 1045
Optimierung in bascom eingeschaltet? Findet sich in den Compileroptionen. Ohne geht z.B. auch das teach-in LED-only nicht auf einen Tiny.


Nach oben
 Profil  
 
BeitragVerfasst: Sa 30. Jan 2010, 19:45 
Offline
Geocacher

Registriert: Fr 23. Okt 2009, 22:16
Beiträge: 28
Der zweite Programmcode ist meiner Meinung nach kein Code, der direkt in das EEPROM geschrieben wird. Es ist ein Programm, welches in das Flash geschrieben, dort ausgeführt wird und dabei die erforderlichen Daten selbständig in das EEPROM schreibt.

Zumindest sagt mir Bascom in der Hilfe zum Befehl "Writeeeprom": Write a variables content to the DATA EEPROM.

Also schreibe die erzeugte HEX Datei ins Flash und lege eine Versorgungsspannung an den µC, damit der das Programm einmal ausführt. Anschließend schreibst Du das erste Programm ins Flash und es sollte alles klappen.

PS: Für die nächsten Posts noch ein paar a für Bascom. Es heißt B_A_scom, nicht B_O_scom, der Name kommt von der Programmiersprache BASIC. Here we go und nicht alle auf einmal: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ;)


Nach oben
 Profil  
 
BeitragVerfasst: Sa 30. Jan 2010, 20:40 
Offline
Geoguru
Benutzeravatar

Registriert: So 29. Okt 2006, 12:04
Beiträge: 4687
Wohnort: 17449 Karlshagen
Lanfair hat geschrieben:
Der zweite Programmcode ....selbständig in das EEPROM schreibt.

Ab hier
Code:
A = &B11111111           ' Pause
Writeeeprom A , 0
A = &B10010101           ' KA (Spruch Anfang) = -.-.-
Writeeeprom A , 1
A = &B11111111           ' Pause
Writeeeprom A , 2
A = &B00100001           ' N = -.
Writeeeprom A , 3
A = &B10010000           ' 4 = ....-
Writeeeprom A , 4
...

A = &B10001010           ' AR (Spruch Ende)   = .-.-. =
Writeeeprom A , 36

End
wird alles zuerst in den EEPROM geschrieben. Danach wird das eigentliche Programm in den Chip geschrieben. Vorher jedoch unbedingt auf die richtig gesetzten Fusebits achten.

PS: Für die nächsten Posts noch ein Hinweis, man beschreibt den Chip, brennen gehört woanders hin. :p

_________________
Es gibt Cacher, die hat der liebe Gott erst kurz vor Feierabend gemacht!
Moin, moin! Achim & Tina


Nach oben
 Profil  
 
BeitragVerfasst: Sa 30. Jan 2010, 22:04 
Offline
Geoguru
Benutzeravatar

Registriert: Sa 17. Jan 2004, 00:57
Beiträge: 6221
Vielleicht streikt Bascom auch, weil Du es immer falsch buchstabierst. ;)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 315 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7 ... 32  Nächste


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Impressum