mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny12 + bascom


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein ganz komisches Problem.

ich schriebe ein ganz siomples Programm in Bascom:

Config PORTB.0 = output
do
portb.0 = 1
waitus 500
portb.0 = 0
waitus = 500
loop

wenn ich nun einen frischen Tiny12 damit brenne funktioniert das ganze 
auch. (led an portb0 blinkt.)

wenn ich das ganze nun nochmal brennen möchte, oder was anderes, kann 
ich den Attiny . beim nicht mehr ansprechen, nix, kapput! danach läuft 
der µC gar nicht mehr. ich habe jetzt schon 4 von den dinger 
geschrottet.

ich habe 3variationen des Programmierens aubrobiert.

1: bascom mit dem "Simple SPI Programmer"
2: Bascom mit nem "STK200" kompatiblem Programmer
3. in Bascom HEX datei erstellt, und manuell mit avrdude und einem 
USBASP gebrannt.

überall das selbe. 1.Programmiervorgang alles OK. ab dem 2. TOT!.

weiss jemand weiter??

Vielen Dank im Voraus!

Tom

Autor: Anselm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blinken? mit 1KHz oO
Schreib mal deinen kompletten Code hier rein...

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier der Komplette Code:



$regfile = "attiny12.dat"
$crystal = 1000000

Config PORTB.0 = Output

Do
  Portc.0 = 1
  Waitms 500
  Portc.0 = 0
  Waitms 500
Loop

End

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>waitus 500
>...
>waitus = 500

find ich hoch tolerant vom Kompiller :)

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STOPP! PORTC ist natürlich PORTB!

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das Bascom umsetzen?
Ein Unterprogrammaufruf ohne RAM?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe beim compilieren keinen Fehler bekommen, und das entsprechende 
Regfile ist ausgewählt, daher denke ich, dass das doch gehen sollte?!!?! 
oder?

Autor: Anselm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
do
toggle Portb.0
waitms 500
loop

so isses kürzer ;)

Aber warum der sich nimmer programmieren lässt ... portb.0 ist ja nicht 
anderweitig belegt.

Es irritiert mich aber etwas dass dein 2ter Post mit dem Code diesen 
"doofen" Fehler hat, tippst du ab anstatt copy&paste?

Anselm

Autor: Anselm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Table 19. Port B Pins Alternate Functions
Port Pin Alternate Functions Device
PB0
AIN0 (Analog Comparator Positive Input) ATtiny10/11/12
MOSI (Data Input Line for Memory Downloading) ATtiny12

PB1
INT0 (External Interrupt0 Input) ATtiny10/11/12
AIN1 (Analog Comparator Negative Input) ATtiny10/11/12
MOSI (Data Output Line for Memory Downloading) ATtiny12

Datenblatt Seite 36

Nimm mal PB3 oder PB4

PB3 XTAL1 (Oscillator Input) ATtiny10/11/12
PB4 XTAL2 (Oscillator Output) ATtiny10/11/12
PB5 RESET (External Reset Pin) ATtiny10/11/12

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage war ernst gemeint!

>Kann das Bascom umsetzen?
>Ein Unterprogrammaufruf ohne RAM?

Autor: Anselm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unterprogramm?
Ich vermute mal dass bascom an der stelle einfach den Timer 
programmiert.
Funktionieren tut es ja ;)

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, ich tippe, :-)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher geht ein Unterprogrammauf! Der ATiny12 hat doch einen 
HardwareStack, für drei Einträge.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo  Anselm,

ich verstehe nicht...
warum soll ich port 3 oder 4 nehmen?? es kann doch nicht sein, dass man 
ein Bein nehmen muss, welches nicht vom ISP genutzt wird, oder?? dann 
könnte ich an den 11/12/13 nur 2 Ports benutzen??!?

wenn ich noch einen intakten tiny12 habe, probiere ich das mal aus....

gruß

Autor: Anselm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probleme könnte aber deine externe Beschaltung verursachen, drum schlag 
ich andere Ports vor.
Ich habe aber ausser Logic-IC´s noch nie was anderes an Pins eines 
Atmega/tiny angeschlossen, drum ist es nur eine Vermutung..

Anselm

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, wie sieht den deine Reset beschaltung aus.Habe mal was gelesen
da sollte 1 Kohm Widerstad dran.Nicht wie üblich ein 10 Kohm.
Versuch das mal und berichte.

Mike

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe das ganze nochmals getestet. hatte noch einen tiny12.

den habe ich nun anders geschrottet.  ich kann diesen noch 
programmieren, dafür funktioniert das ding einfach nicht! er läuft nicht 
an. mehfach alles mögliche an Port ausprobiert. proggen funktioniert. 
blinkt aber nix.

daraufhin habe ich nen mega8 genommen und das ganze damit probiert, 
alles ok. mehrfach beschrieben, alles klappt...

ich ges einfach auf mit den tin12. habe mir mal nen tiny 25 bestellt, 
und probiere das damit mal.

gruß

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe schon ein paar Dutzend Tiny12 programmiert und keinen 
einzigen dabei beschädigt. Als ISP Programmer habe ich teils einen 
Eigenbau (Hardware am Druckerport und Software in QBASIC) genutzt, teils 
das STK500. Wenn Dir die Dinger sterben (sie sind vermutlich nur 
verfust), dann hast Du entweder an den Fuses gespielt ohne Dich 
sachkundig zu machen, oder Dein Programmer arbeitet timingmäßig hart am 
Limit, wodurch gerne mal ein paar Bits kippen und die ISP-Befehle 
verfälscht werden. Dies kann bei zu langen Leitungen leicht passieren.

Abhilfe: Kauf Dir einen vernünftigen Programmer, z.B. AVR-ISP MK II von 
ATMEL.

...

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Hase liegt da im Pfeffer ,weil der Tiny 12 keinen SRAM besitzt.
Er lässt sich da in Bascom so nicht einfach Programmieren,in Assembler
schon. Du kannst den Befehl §Tiny benutzen der Verhinder das Einrichten 
des Stacks und in Bascom dein Programm in Assembler (einbinden) 
schreiben.

Mike

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.