Ik wil een netfrequentiemeter maken en vond de volgende schakeling:
https://fowkc.wordpress.com/2013/12/10/mains-frequency-display/
https://hackaday.com/2013/12/12/mains-frequency-display/

De hardware is eenvoudig, centraal staat een ATTINY84V, als referentie wordt de 32,768kHz uitgang van een DS3231 module gebruikt en de displays worden aangestuurd met TLC5916's.
Hier het volledige schema:

4-digit mains frequency meter.pdf

Oorspronkelijk zitten er drie cijfers achter de komma, maar ik laat de laatste weg. Dat geeft zonder aanpassing wel een afrondingsfoutje...

Maar waar ik mee worstel is de software. Die heb ik gevonden en dit zijn de files:

Ik heb een TL866II programmer en daar vind ik de chip terug. So far, so good.
Maar ik heb geen flauw benul hoe ik nou van bovenstaande files een bestand kan maken die ik kan downloaden in de ATTINY84V...

Kan iemand mij wegwijs maken hoe ik dit moet aanpakken? Wat heb ik nodig?

Je hebt een compiler nodig; dit is gewoon C code, dus een compiler kan daar (met een paar goede instellingen) een file met binaire code van maken die je in de microcontroller kunt laden. Je kunt de MPLab software downloaden bij Microchip (die hebben Atmel overgenomen), maar als ik het goed zie kan de Arduino ontwikkelomgeving het ook, met een aparte module voor de Tiny. Je moet in dat laatste geval die .c file hernoemen naar .ino, dat is de standaard extensie van Arduino code, maar stiekem is dat gewoon C.

[Bericht gewijzigd door SparkyGSX op (47%)]

Een compiler... Check!
Ik ga op zoek en er mee spelen.

maar als ik het goed zie kan de Arduino ontwikkelomgeving het ook, met een aparte module voor de Tiny. Je moet in dat laatste geval die .c file hernoemen naar .ino, dat is de standaard extensie van Arduino code, maar stiekem is dat gewoon C.

Klopt arduino is C/C++ en vrijwel alles van C werkt dan ook maar soms ook niet of dan werkt het net even iets anders. Op zich geen probleem.
Bij de arduino zit alles in het ino bestand maar hier is main.C en freq_data.C apart. Eenvoudig hernoemen zal het niet zijn maar het is wel eventueel aan te passen naar Arduino

Op woensdag 27 maart 2024 19:02:55 schreef rob040:

Maar waar ik mee worstel is de software. Die heb ik gevonden en dit zijn de files:

Als je de link naar github had gestuurd had ik "even" een binary voor je kunnen maken. "make" intypen in de juiste directory.

Op woensdag 27 maart 2024 20:04:55 schreef benleentje:
[...]
Klopt arduino is C/C++ en vrijwel alles van C werkt dan ook maar soms ook niet of dan werkt het net even iets anders. Op zich geen probleem.
Bij de arduino zit alles in het ino bestand maar hier is main.C en freq_data.C apart. Eenvoudig hernoemen zal het niet zijn maar het is wel eventueel aan te passen naar Arduino

In de arduino omgeving een lege naam.ino file aanmaken en daar de C-code in plakken.

Of wat REW zegt even GCC activeren met de makefile.

Op woensdag 27 maart 2024 20:09:26 schreef rew:
[...]Als je de link naar github had gestuurd had ik "even" een binary voor je kunnen maken. "make" intypen in de juiste directory.

Dat is heel vriendelijk aangeboden, maar ik moet het toch ook zelf kunnen doen.
Ik heb de 7 segmenten door elkaar gehusseld, dat kwam beter uit met routen van sporen op de PCB. Ik hoop dat eenvoudig zelf te kunnen wijzigen als ik eenmaal weet hoe ik verder moet.
Ben aan het zoeken naar een compiler en vond MPLAB XC32-v4.35, maar die installeert niet goed (krijg alleen uninstall exe files, niks waarmee ik het progje kan starten).
Ik zoek verder...

Daar heb je niks aan. Die is voor 32-bit processors.

Je kunt beter de XC8 proberen. Die is bedoeld voor AVR en andere 8-bit processors.

Maar de betere keuze is voor mij de AVR-GCC compiler, die vanouds de standaard compiler is geweest voor AVR. Geen beperkingen en volledig C en C++.

See https://www.microchip.com/en-us/tools-resources/develop/microchip-stud…

[Bericht gewijzigd door deKees op (14%)]

Op woensdag 27 maart 2024 22:16:18 schreef deKees:
Maar de betere keuze is voor mij de AVR-GCC compiler, die vanouds de standaard compiler is geweest voor AVR. Geen beperkingen en volledig C en C++.

See https://www.microchip.com/en-us/tools-resources/develop/microchip-stud…

Dank voor de link.
Ik heb die binnengehaald:

En daarna uitgepakt:

Maar ik zou verwachten dat ik nou een installatiefile zou zien. Hoe start je deze compiler op?

Dat is alléén de toolchain. Dus compiler, linker, make, etc. En de standaard libraries. Dus géén IDE. In principe heb je hier genoeg aan. Zorgen dat deze tools in je "path" staan, cd'en naar je dir met code en makefile en daar "make" runnen.

Zo te zien is dit een losse compiler. Zonder IDE. Die wordt opgestart dmv een script in je project (makefile) zodat de compiler weet wat er moet gebeuren. Maar voordat dat werkt moet je eerst een paar environment variabelen goed zetten zoals PATH.
Ik heb zelf geen windows dus ik weet niet precies hoe dat bij jou werkt.

Maar als je liever met een IDE werkt dan kun je de Microchip Studio proberen. Dat is dezelfde compiler maar dan wel met een IDE en een installatie file.
https://www.microchip.com/en-us/tools-resources/develop/microchip-stud…

In die BIN directory staat je compiler. Als je die in je pad zet, en dan in een command window naar je project toe gaat dan kan je daar make intypen en moet alles goedkomen. Maar... Ik heb geen windows, dus ik weet niet precies hoe het moet.
(en of je makefile voor Linux of windows is ingericht).

Oké, ik denk dat ik stapjes in de goed richting zet.
De compiler staat nu op de C-schijf en de FW files ook.
Ik heb de makefile even opengemaakt met kladblok en daar de paden aangepast:

Ga ik dan via CMD naar de directory van de FW files:

Hoe nu verder? C:\Software_FM> run makefileRT werkt niet... :?

Helaas, dat geeft hetzelfde resultaat:

Windows zoekt naar make in de huidige directory + de directories onder path. Als het daar de file make niet kan vinden krijg je deze error.

Je moet dus minimaal de directory waarin de make file staat toevoegen aan path maar misschien nog wel meer.
Ik zou eerst deze directory toevoegen en het dan weer proberen dan gaat het goed of je krijgt nog een error dat het files niet kan vinden en dan voeg je die toe aan het path.

[Bericht gewijzigd door benleentje op (51%)]

@benleentje: Ik snap wat je zegt, maar ik heb geen flauw idee waar ik de file 'make' zou moeten vinden.
Als ik zoek op Google krijg ik sterk de indruk dat het Linux gerelateerd is en dat Windows er helemaal niks mee kan.

make.exe zit in die toolchain zip die je bij Microchip gedownload hebt. In /bin of misschien /avr/bin ofzo.
Nope.. my bad. Bij die Microchip avr-gcc toolchain zit geen make. Heb een (niet Microchip) avr-gcc 12.1.0 toolchain waar make wel bij zit. Bij Microchip Studio 7 staat make in de subdir shellutils. Maar als je dan toch Studio installeert kun je net zo goed vanuit de IDE je code bouwen.

make.exe : https://github.com/ZakKemble/avr-gcc-build/tree/master/prebuilt/x64/bi…

Bas, ik ben blij met jouw edit, want ik heb me suf gezocht en niet gevonden.
Nu de make.exe in dezelfde map gezet als waar de makefilert staat, dus weer een stapje verder. :-)
Wat ik nu krijg is:

Als ik weer naar deze afbeelding kijk:

moet ik dan iets doen met de eerste regel "NAME=test"?
De file avr-gcc.exe staat netjes in de map C:\Compiler\bin, maar er ontbreekt blijkbaar nog iets.

Wat staat er in die readme?
Attach anders even hier het setje files , in een zip of zo, dan kunnen anderen mee "proberen".

[Bericht gewijzigd door bprosman op (64%)]

Je mist nog een aantal .c/.h files: lib_clk.c/.h tot en met seven_segment_map.c/.h

Hier te vinden:
https://github.com/jamesfowkes/Code-Library/tree/master

En het project zelf:
https://github.com/jamesfowkes/fMainsDisplay

Verder moet je de directory structuur zoals in de makefile aanmaken -of- je makefile aanpassen zodat (bijvoorbeeld) alle .c/.h files in C:\Software_FM staan.

Installeer toch gewoon Mplab X, maak een nieuw project, mik die files erin en bouw de executable. Die command-line tool hebben best hun plaats, maar het is hier echt niet nodig om het zo ingewikkeld te maken.

Op vrijdag 29 maart 2024 06:25:10 schreef bprosman:
Wat staat er in die readme?
Attach anders even hier het setje files , in een zip of zo, dan kunnen anderen mee "proberen".

In de readme staat alleen wat het ding is en doet:

Dit is de originele zip-file:

fMainsDisplay-master.zip

En dit is zoals ik er nu mee aan het spelen ben (met make.exe erbij):

Main_display_RT.zip

Je mist nog een aantal .c/.h files: lib_clk.c/.h tot en met seven_segment_map.c/.h

Hier te vinden:
https://github.com/jamesfowkes/Code-Library/tree/master

Dat van die missing files heb ik gezien, echter ik dacht dat die 'opgehaald' zouden worden uit de main.c met de volgende code:

INCLUDE_DIRS = \
	-I$(LIBS_DIR)/AVR \
	-I$(LIBS_DIR)/Common \
	-I$(LIBS_DIR)/Devices \
	-I$(LIBS_DIR)/Generics \
	-I$(LIBS_DIR)/Utility

MAIN_FILE = main.c
CFILES = \
	$(LIBS_DIR)/AVR/lib_clk.c \
	$(LIBS_DIR)/AVR/lib_fuses.c \
	$(LIBS_DIR)/AVR/lib_tmr8.c \
	$(LIBS_DIR)/AVR/lib_tmr8_tick.c \
	$(LIBS_DIR)/AVR/lib_io.c \
	$(LIBS_DIR)/AVR/lib_shiftregister.c \
	$(LIBS_DIR)/Devices/lib_tlc5916.c \
	$(LIBS_DIR)/Generics/memorypool.c \
	$(LIBS_DIR)/Generics/ringbuf.c \
	$(LIBS_DIR)/Generics/seven_segment_map.c

want in main.c zag ik bijvoorbeeld het volgende staan:

static SEVEN_SEGMENT_MAP map =
{
	0, // A
	1, // B
	3, // C
	4, // D
	5, // E
	7, // F
	6, // G
	2, // DP
};

Maar ik ga zoeken naar de ontbrekende files in de link die jij gaf.
Ik moet eerlijk zeggen dat ik zelf zo nooit een project zou publiceren, mijn voorkeur gaat uit naar complete projecten. Het komt wel overeen met zijn werkwijze, de hardware (schema's) was ook een zoektocht...

https://tinusaur.com/guides/avr-gcc-toolchain/

Dank Bram, ga ik ook even lezen.

Installeer toch gewoon Mplab X, maak een nieuw project, mik die files erin en bouw de executable. Die command-line tool hebben best hun plaats, maar het is hier echt niet nodig om het zo ingewikkeld te maken.

Ga ik ook doen. Dool nog een beetje rond en leer elke stap. Zal later zien wat voor mij het handigste werkt. :-)

Op vrijdag 29 maart 2024 10:21:47 schreef SparkyGSX:
Die command-line tool hebben best hun plaats, maar het is hier echt niet nodig om het zo ingewikkeld te maken.

Voor de TS: Dat zou best wel eens kunnen.

Voor mij: Als dat makefile goed geschreven was, dan had ik zomaar "make" kunnen intoetsen en had ik een binary/hex gehad.

In het onderhavige geval blijkt ie allerlei lib dingen te gebruiken waarvan ik niet weet waar die vandaan komen. Dus hier stopt het voor mij om het te proberen te compileren. Geen tijd om er verder in te steken.

@Rob: er was bij die auteur ergens op zijn computer een directory waarin een subdirectory AVR is en dan een file lib_clk.c

Het makefile vertelt je hoe dat ding heeft geheten op zijn systeem.

Hoe ie daaraan gekomen is... dat weet ik niet. Ik heb hier een compilete AVR ontwikkelomgeving waar ik mee uit de voeten kan, maar er is geen lib_clk.c op mijn systeem.