Hallo zusammen,
als stiller Mitleser habe ich hier schon sehr oft sehr hilfreiche Infos
gefunden. Erstmal Danke dafür.
Ich bastele seit langem mal wieder an einem kleinen AVR Projekt und
stolpere gerade über einen Fehler den ich nicht durchschaue.
Es geht um die Ansteuerung einer WS2812-Kette für die ich Falks Assembly
aus seinem Night Rider Lauflicht-Projekt verwenden möchte. Ich verwende
das Microchip Studio 7.
In den Compiler-Optionen (Symbols) definiere ich F_CPU=10000000UL
Folgendes Makro ist in Falks Assembly (ws2812.s):
1 | #if (F_CPU < 6300000) || (F_CPU > 20000000)
|
2 | #error F_CPU out of range! Must be 6300000-20000000!
|
3 | #endif
|
Beim kompilieren wird der entsprechende Fehler angezeigt.
Als Workaround funktioniert es wenn ich in der Assembly F_CPU definiere:
1 | #define F_CPU 10000000UL
|
...unschön, aber in dem Mini-Projekt vertretbar...
Ich würde aber gerne verstehen, warum die Definition von F_CPU in der
Assembly nicht bekannt zu sein scheint wenn sie global als Symbol
definiert wird. Grundsätzlich funktioniert dies an anderen Stellen aber
(mit utils/delay.h getestet).
Ich hoffe ich finde bei Euch Erleuchtung. ;-)
VG
Sebastian