-         

Ergebnis 1 bis 10 von 10

Thema: mega 644 und voegele-fat in bascom

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776

    mega 644 und voegele-fat in bascom

    Anzeige

    hallo ihr,

    da der mega644 mit seinen 4k-ram ja durchaus für die verwendung mit dem dos-fat von voegele(mcs) und ner sd-karte geeignet sein sollte, wollte ich das mal testen.

    beim kompilieren gibt es da aber fehlermeldungen, weill beim 644 einige register anders heissen als beim mega128 (für den das fat ja geschrieben wurde). in anlage poste ich mal die fehlerliste !

    ich werde das mal weiter untersuchen, wollte aber schonmal reinhören, ob da schon jemand erfahrungen gemacht hat.

    gruss
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    mit DOS- und FAT hatte ich noch nix zu tun,
    aber man könnte doch das regfile vom 644er so ändern, das er die anderen Register-Namen auch kennt, also nur die unbekannten dazuschreiben,
    wäre zumindest ein Workaround.
    Beim 2. USART könnte es aber ein Problem geben, musst' evtl. etwas tricksen, also auch im Regfile die Adresse vom vorhandenen USART angeben.

    Damit Du dir das original regfile nicht zerschiesst, kann man es evtl. kopieren nach m644adef.dat oder ähnlich. Bei $Regfile aber auch dann so angeben.

    Ob das dann läuft, stellt sich dann aber erst noch heraus

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo linux80,

    interessanter ansatz mit der def-datei. ich hatte mich schon seelisch darauf eingestellt, in den .LBX dateien rumzufuimmeln, wobei ich eigentlich garnicht weiss, ob das geht.

    gruss kolisson

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    in den LBX kann man schon rumbasteln, das ist auch eine Textdatei, und halt etwas vorcompiliert,
    alle Befehle die noch angepasst werden müssen, weil die ein Bestimmtes IO-Register verwenden, kommen noch lesbar vor, die anderen als Data-Bytes.
    Man müsste jetzt mit einem Disassembler diese Bytes wieder in lesbare Befehle umsetzen, dann kann man das auch leichter ändern.
    Ist nur viel Arbeit. Und auch wohl vom Erfinder (der Lib) so nicht geplant

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo linux,

    bin schon etwas weiter gekommen. leider noch nicht weit genug um etwas zu veröffentlichen.

    auf jeden fall werden die ersten 3 fehler :

    Error : 975 Line : 0 [UBRR1H[C:\PROGRA~1\MCSELE~1\BASCOM~2\BASCOM~1\M644DEF.DAT]] , in File :
    Error : 975 Line : 0 [UBRR1L[C:\PROGRA~1\MCSELE~1\BASCOM~2\BASCOM~1\M644DEF.DAT]] , in File :
    Error : 975 Line : 0 [UCSR1B[C:\PROGRA~1\MCSELE~1\BASCOM~2\BASCOM~1\M644DEF.DAT]] , in File :

    von der initialisierung des 2ten UART ausgelöst, obwohl der 644er ja 2 uarts an board hat. offenbar müsste man den UART2 noch irgendwie aktivieren. da werd ich nochmal nachlesen.

    aus gründen der pinkompatibilität mit mega32 bin ich aber sowieso an der verwendung von UART1 interessiert. vielleicht kannst du mir zu folgenden codezeilen noch was schreiben:

    $baud1 = 9600
    Open "Com1:" As Binary As #1

    laut anleitung initialisiert dieser code den UART2 als #1

    wie kann ich denn UART1 als #1 initialisieren ?

    ne idee?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,

    ich hab auch 644er da rumliegen, aber die haben nur eine UART !

    Wenn man nur eine UART hat, brauchts ja nur diese Zeile
    $baud = 9600

    Tipp wegen dem Open:
    Wenns nicht zuviele Zeilen mit Print #1 oder Input #1 sind, bei diesen einfach das #1 wegmachen, und das Open auch weglassen, das braucht man wie schon erkannt nur, wenns mehr als eine UART gibt, damit das Print weiss wo's raus geht.
    Hab das aber jetzt nicht ausprobiert !

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    also im datenblatt vom 164P/V / 324P/V / 644P/V ... das sind die dip40 versionen... also pinkompatibel zum mega32 steht eindeutig, dass es 2 stück usart hat. der zeite teilt sich beine mit pd2 und pd3. ich habe das im pinout auch lange nicht bemerkt aber es ist so.

    mir ist in der zwischenzeit klargeworden wo die fehler so liegen. das hat alles wenig mit dem dos-fat programm von herrn voegele zu tun sondern vielmehr mit der Bascom (1.11.81) unterstützung des 644er proz.

    und zwar ... wenn man folgendes proggi compiliert:

    $regfile = "M644def.dat"
    $crystal = 8467200

    $hwstack = 128
    $swstack = 128
    $framesize = 128

    Config Clock = Soft

    gibt es schon eine fehlermeldung zu TCCR2 (timer counter2)

    das liegt daran, dass im vergleich zu mega128 oder 32 das tccr2 register im mega644 nicht mehr existiert. es wurde vielmehr auf zwei register verteilt (TCCR2A und TCCR2B). davon nimmt Bascom zuzeit keine notiz.

    der nächste fehler bezieht sich auf der verwendung der register SPCR, SPDR, und SPSR durch die mmc.lbx von herrn voegele. das liegt aber weniger an der lbx als an einer, wie ich denke fehlerhaften m644def.dat.
    darin werden die genannten register nämlich nicht erwähnt sondern erscheinen als SPCR0, SPDR0, und SPSR0 obwohl das datenblatt diese schreibweise nicht nahelegt. nach korrektut der 644def bleibt die fehlermeldung zumindest aus. ob das proggi dann funktioniert kann ich noch nicht sagen.

    soweit die neuesten news dazu

    gruss

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hier noch ein nachwort...
    das mit der frage ob es beim 644er ein oder 2 UART gibt habe ich nochmal nachgesehen.

    es ist beides richtig!!!!!
    es gibt nämlich bei atmel ein datenblatt für den 644P/V ... der hat 2 uart.
    und ein datenblatt für nen 644V... der hat nur 1 uart.

    jetzt stellt sich mir die frage... welchen 644er hab ich eigentlich ?

    dies erklärt die uart-frage nicht jedoch die diskrepanzen in den registern respektife der 644def.dat. (im letzten artikel beschrieben).

    gruss

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hier noch was zum runterladen:
    pdf document für den umstieg von mega32 auf 644 von atmel
    Angehängte Dateien Angehängte Dateien

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Welchen 644 Du nun hast, sieht man eigentlich am Aufdruck
    Oder Du machst das Flashprogramm von Bascom, o.ä., auf und clickst auf Identify Chip, wenn dann 644 ohne P da steht, ist es der ohne P denn den mit P kennt Bascom nicht, der hat nämlich eine andere Chip-ID (Singnature-Bytes).

    Da fällt mir noch auf, das in der Tabelle der AvR-Übersicht bei Atmel beim 644P auch nur 1 USART steht, obwohl der 2 hat !

    Mit fertigen vorcompilierten Libs ist es halt so eine Sache, die laufen dann auch nur wenn die Registernamen auch so heissen wie sie der Programmierer der Lib da reingeschrieben hat, ausser es sind so einige Abfragen in der Lib enthalten die den verwendeten Chip abfragen, dann könnte man das umgehen. Hängt aber auch vom Programmierer ab, wie flexibel die Lib werden soll.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •