Muss der Ausgabepin unbedingt PortC,0 sein ?
Wenn du den PortD,4 oder PortD,5 verwenden könntest würde deine Frequenzausgabe ohne weiteres zutun laufen. Stichwort OC1A OC1B pin.
Du müsstest dann halt nur die Comparematch Register OCR1AH und OCR1AL mit den richtigen Daten füttern.

Die nötigen Informationen über den Timer 1 findest Du im Datenblatt des ATMEGA 16 auf Seite 87...115.
Die allgemeine Timer Beschreibung ist für den Prescaler (Vorteiler) wichtig.

Mit ein bischen Assemblerkenntissen und ein wenig Mühe sollte sich sowas innerhalb von 5..6 Stunden proggen lassen (inkl. Datenblatt lesen).

Übrigens solltest Du während einer Interruptroutine alle benutzten Register inklusive Statusregister auf dem Stack sichern un später auch wieder runterholen.

bsp:

tim1cmp_int:
PUSH r16
IN r16,SREG
PUSH r16
PUSH r17

; Dein Interrupthandlerprogramm welches r16 und r17 benutzen will.

POP r17; Werte in umgekehrter Reihenfolge vom Stack holen
POP r16
OUT SREG,r16
POP r16

RETI ; Der Aussprung aus einer Interruptroutine ist immer RETI !

Damit das auch so klappt musst Du am Anfang deines normalen Programmes den Stack initialisieren.

LDI r16,low(RAMEND)
LDI r17,high(RAMEND)
OUT SPL,r16
OUT SPH,r17

Die Interruptvektortabelle muss natürlich auch stimmen, aber das ist im Datenblatt auf Seite 43 bestens beschrieben.
Nicht benutzte Interrupts solltest du mit dem Befehl RETI belegen, damit dein Controller keinen Blödsinn macht.

Beispiel:

.CSEG
.org 0
jmp RESET ; Reset Handler
RETI ; IRQ0 Handler
RETI ; IRQ1 Handler
RETI ; Timer2 Compare Handler
RETI ; Timer2 Overflow Handler
RETI ; Timer1 Capture Handler
jmp TIM1_COMPA ; Timer1 CompareA Handler
jmp TIM1_COMPB ; Timer1 CompareB Handler
RETI ; Timer1 Overflow Handler
jmp TIM0_OVF ; Timer0 Overflow Handler
jmp SPI_STC ; SPI Transfer Complete Handler
jmp USART_RXC ; USART RX Complete Handler
jmp USART_UDRE ; UDR Empty Handler
jmp USART_TXC ; USART TX Complete Handler
jmp ADCC ; ADC Conversion Complete Handler
jmp EE_RDY ; EEPROM Ready Handler
jmp ANA_COMP ; Analog Comparator Handler
jmp TWSI ; Two-wire Serial Interface Handler
jmp EXT_INT2 ; IRQ2 Handler
jmp TIM0_COMP ; Timer0 Compare Handler
jmp SPM_RDY ; Store Program Memory Ready Handler

Ich hoffe die Informationen haben Dir weitergeholfen.
Schreiben solltest Du dein Prog schon selber.