PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmübersetzung, was mach ich falsch ?



bebop
21.12.2010, 20:17
Hallo zusammen,
ich sitze vor einem Problem. Bei mir haperts bei der Übersetzung eines programmes für einen Mega 8 auf einen Attiny 13, eigentlich sollte es ja nicht so schwer sein dachte ich aber da haben mich die 8 Pins vom Attiny 13 aus geschmiert ](*,) Dank oZe habe ich das programm an den Mega anpassen können aber jetzt da es auf den Attiny 13 soll habe ich probleme

$regfile = "m8def.dat"
$crystal = 12000000
$hwstack = 100
$swstack = 100
$framesize = 100


Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Pinb.3 = Input


Dim State As Byte
State = 1

Do

Debounce Pinb.3 , 0 , Unterfunkt , Sub

Loop
End


Unterfunkt:
If State = 1 Then
Portb.0 = 0
Waitms 20
State = 2

Elseif State = 2 Then
Portb.0 = 1
Portb.1 = 0
Waitms 20
State = 3

Elseif State = 3 Then
Portb.1 = 1
Portb.2 = 0
Waitms 20
State = 4

Elseif State = 4 Then
Portb.2 = 1
Waitms 20
State = 1

End If

Return
Kann mir da einer weiter helfen wie ich das anstelle das es der Attiny frisst und er mit 128 kHz int. oszilator läuft(folglich muss die zeile *$crystal = 12000000* raus oder?).
Danke schon mal die die sich meiner Probleme erbarmen.

Richard
21.12.2010, 20:34
Schaue einmal die Batenblätter vom Mege 8 und Atinny13 an, dann wird Dir einiges klar. Der Atinny hat anstatt 8 kB Flasch nur 1 kB und der s ram alleine ist schon weitaus kleiner als die eingestellte Stak Größe im Programm, das kann nicht gehen!

Gruß Richard

for_ro
21.12.2010, 21:24
Ich würde es mal mit so einem Header versuchen:
$regfile = "attiny13.dat"
$crystal = 128000
$hwstack = 24
$swstack = 8
$framesize = 10

Da du bisher keine Funktion oder Sub mit Parametern aufrufst, kannst du swstack auch auf 0 setzen. framesize ebenso, solange du keine Typ Konvertierungen machst.

bebop
21.12.2010, 23:46
Hey danke, ich habs hin bekommen. Jetzt funktioniert es, die Werte waren ja viel zu groß, habe nun $hwstack = 16 $swstack = 4 $framesize = 12 also überall die hälfte.
Jetzt muss ich nur noch eine Sleep-Funktion einbauen dann bin ich ganz und gar zufrieden. Hat jemand ein Bascom Beispiel irgendwo gesehen, ich finde nur immer in C programmierte Sourcecodes.
Danke noch mal . O:)

stefan_Z
22.12.2010, 09:03
Schau mal hier http://avrhelp.mcselec.com/ bei POWER mode

The mode depends on the micro processor.
Some valid options are :
- IDLE
- POWERDOWN
- STANDBY
- ADCNOISE
- POWERSAVE

So for standby you would use : POWER STANDBY
It is also possible to use POWERDOWN, IDLE or POWERSAVE. These modes were/are supported by most processors. It is recommended to use the new POWER command because it allows to use more modes.

POWER has nothing to do with the POWER() function.