Liebe Mikrocontroller-Community, Ich habe ein Projekt erhalten bei dem ich noch auf dem Schlauch stehe, da ich noch ein Anfänger bin, was die Mikrocontrollerprogrammierung angeht. Deshalb hoffe ich, dass Ihr mir weiterhelfen könnt und bedanke mich schonmal im voraus. Zum Projekt: Es geht um eine Atmega88 Hardware mit 2 Sensoren (BMP460-Beschleunigungssensor und BMP180-Luftdruck- und Temperatursensor), dessen Werte auf einem Flashspeicher ( SST25VF032B) in einer csv-Datei abgespeichert werden sollen. Diese Platine soll in einer Rakete verbaut werden, welche dann hochgeschossen wird. Dabei hat sie eine Beschleunigungszeit von ca. 2 Sekunden. Im Hochpunkt wird die Kapsel in der die Platine ist abgesondert und gleitet anhand eines Fallschirmes zum Boden. Innerhalb der Beschleuinigungsphase soll nur die Beschleuinigung und während der Gleitphase die Temperatur und der Luftdruck gemessen werden. Problem: Mir ist nicht ganz klar, wie ich die Daten von den Sensoren einlesen und in den Flashspeicher in einer csv-Datei speichern kann und wie ich die Sensoren ansprechen kann und die einzelnen Werte an den speicher senden kann. Mir wurden dazu diverse Bibliotheken überreicht, welche im Anhang vorhanden sind. Vielen Dank für Ihre Hilfe!
Ergänzung: Es wird mit dem Programm Atmel Studio 6 programmiert
Guten abend, Muss es zwangsweise mit dem Atmel Avr Studio 6 programmiert werden? Ich lege dir für die 8-bit microcontroller das WinAVR Paket nahe. http://www.webring.org/l/rd?ring=avr;id=59;url=http%3A%2F%2Fwinavr%2Esourceforge%2Enet%2F Es sieht so aus als hättest du bereits alle nötigen Libs um all dies zu realisieren. Am besten studierst du zuerst diese und kannst evtl. schon selbst festellen welche funktionen du für dein projekt benötigst. Wenn du nach diesen googelst wirst du wahrscheinlich ein paar beispiele zu jeder lib finden. Über das csv format findet sich sicher auch was mit google. Grober ablauf: - Sensoren und flash mit hilfe der funktionen der libs initialisieren - timer initialisieren mit einer interrupt-routine die in dem gefordetem speicherintervall ausgelöst wird. - in der interrupt-routine die sensordaten mit den gegebenen funktionen der lib für den jeweiligen sensor auslesen. - sensordaten in selber routine in csv format wandeln - daten in flash schreiben mit den gegeben funktionen der lib.. - warten auf den nächsten interrupt des timers Ist wie kuchen backen, die zutaten hast du ja eigentlich schon alle.
Guten Tag, Danke für Ihre rasche Antwort. Das Programm muss mit Avr Studio 6 programmiert werden.
julian schrieb: > Ich lege dir für die 8-bit microcontroller das WinAVR Paket nahe. Kannst Du auch einen guten Grund dafür nennen? So wie ich das sehe ist WinAVR schon seit Ewigkeiten tot, der letzte Release war vor sechs Jahren. Im Gegensatz zur "Atmel AVR (8 bit) GNU Toolchain": https://gallery.atmel.com/Products/Details/fc38b14b-c4ce-49a8-a18a-b46c3effb2d0 Megatron schrieb: > dessen Werte auf einem Flashspeicher ( SST25VF032B) > in einer csv-Datei abgespeichert werden sollen. Was willst Du auf dem FLASH mit einer CSV-Datei? Die Datei müssen doch nur irgendwie gespeichert und dann zur Ausgabe über die serielle Schnittstelle dann passend aufbereitet werden.
:
Bearbeitet durch User
Rudolph R schrieb: > Was willst Du auf dem FLASH mit einer CSV-Datei? > Die Datei müssen doch nur irgendwie gespeichert und dann zur Ausgabe > über die serielle Schnittstelle dann passend aufbereitet werden. Wie gesagt, ich bewege mich auf Neuland, weshalb ich für bessere Alternativen sehr dankbar bin. Meinst du dann, dass ich die Daten dann nach der Übertragung auf dem PC in eine CSV-Datei speichere? Wie könnte man das denn realisieren? Ich habe mich erstmal an die Programmierung des Flash-Speichers herangewagt. Ich möchte lediglich eine Testvariable abspeichern. Code: //Testvariable test = 44; //Test der Funktionalität DDRD |= (1<<DDD7); PORTD |= (1 << PD7); SPI_Flash_Init(); adresse = 0x00; adresse_zeiger = &adresse; Flash_SPI_Write_Byte( OP_CODE_WRITE_BYTE, adresse_zeiger, test); Was genau macht denn "OP_CODE_WRITE_BYTE"?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.