1) Man definiert in C keine Funktionen innerhalb anderer Funktionen.Code hänge ich mal an, würde mich freuen wenn mal einer darauf schauen könnte und mir die Fehler veranschaulicht
2) Dein main() ist leer, dein Programm macht also rein gar nichts.
 
          
 
			
			Hallo zusammen.
Ich versuche ein Schieberegister 74HC595 gerade mit daten zu füllen.
Ich treibe damit eine 7 Segment Anzeige.
Meine Schaltung ist IO mit Bascom funktioniert sie.
Soviel mal vorab.
Da ich mich momentan in C einarbeite benutze ich das Beispiel aus Rn Wissen für Soft SPI.
Und wie Ihr euch sicher denken könnt habe ich so meine Probleme.
Code hänge ich mal an, würde mich freuen wenn mal einer darauf schauen könnte und mir die Fehler veranschaulicht
Grüße FloCode:#include <avr/io.h> #include "serpa.h" unsigned char serpa[SERPA_SIZE]; int main(void){ void serpa_init (void) { //********************************************** DDRB |= (1<<DDB0) |(1<<DDB1)|(1<<DDB2); //********************************************** PORTB |=(1<<PINB1); //SCK auf Hi_Level PORTB |=(1<<PINB2); //RCK auf HI_Level //********************************************** } void serpa_out (void) { unsigned char anz = SERPA_SIZE; unsigned char* serp = serpa+SERPA_SIZE; serpa[0] = 0xFF; do { unsigned char bits; unsigned char data = *--serp; for (bits = 8; bits > 0; bits--) { PORTB &= ~(1<<PINB0);//SER Reset if (data & 0x80) { PORTB |=(1<<PINB0);//SER Set } data<<1; PORTB &= ~(1<<PINB1);//Strobe an SCK schiebt Daten im Gaensemarsch PORTB |=(1<<PINB1); //um 1 Position weiter durch alle Schieberegister } } while (--anz > 0); PORTB &= ~(1<<PINB2); PORTB |=(1<<PINB2); } }
1) Man definiert in C keine Funktionen innerhalb anderer Funktionen.Code hänge ich mal an, würde mich freuen wenn mal einer darauf schauen könnte und mir die Fehler veranschaulicht
2) Dein main() ist leer, dein Programm macht also rein gar nichts.
MfG
Stefan
 
			
			Hallo sternst
Danke für die Antwort.
Das Programm macht nichts hast recht habe es im Simulator gesehen.
Wieso ist das so?
In den geschweifent Klammern steht doch der gewünschte auszufürende Code.
1) Man definiert in C keine Funktionen innerhalb anderer Funktionen.
Also eine Funktion ist doch zusammengefaster Programmcode der je wie ich ihn definiere einen Wert zurück gibt bzw nicht zurück gibt.
Du definierst damit aber nur zwei neue Funktionen. Du rufst diese Funktionen niemals auf, und führst damit ihren Code auch niemals aus.
Also wenn dir solch grundlegende Sachen nicht klar sind, dann besorge dir erst mal geeignetes Lehrmaterial (am besten ein Buch, aber Online-Tutorial geht notfalls auch), und arbeite das vernünftig durch. Man lernt eine Programmiersprache nicht mal eben so, indem man mit kopierten Programmschnipseln einfach drauflos probiert.
MfG
Stefan
 
			
			Denk du hast recht.
Muß mir zuerst die grundlagen aneignen. Damit wir auch die gleiche Sprache sprechen
Dieses Unterfangen führt zu nix.
Grüße
Lesezeichen